diff options
Diffstat (limited to 'modules/lua/lua.luadoc')
-rw-r--r-- | modules/lua/lua.luadoc | 2166 |
1 files changed, 987 insertions, 1179 deletions
diff --git a/modules/lua/lua.luadoc b/modules/lua/lua.luadoc index 8dc89938..52d81aeb 100644 --- a/modules/lua/lua.luadoc +++ b/modules/lua/lua.luadoc @@ -3,438 +3,391 @@ -- @class table -- @name _G -- @field _G (table) --- A global variable (not a function) that holds the global environment --- (see §2.2). Lua itself does not use this variable; changing its value does --- not affect any environment, nor vice versa. +-- A global variable (not a function) that holds the global environment (see §2.2). Lua +-- itself does not use this variable; changing its value does not affect any environment, +-- nor vice versa. -- @field _VERSION (string) --- A global variable (not a function) that holds a string containing the --- running Lua version. The current value of this variable is "`Lua 5.4`". +-- A global variable (not a function) that holds a string containing the running Lua version. The +-- current value of this variable is "`Lua 5.4`". local _G --- --- Raises an error if the value of its argument `v` is false (i.e., nil or --- false); otherwise, returns all its arguments. In case of error, `message` is --- the error object; when absent, it defaults to "assertion failed!". +-- Raises an error if the value of its argument `v` is false (i.e., nil or false); otherwise, +-- returns all its arguments. In case of error, `message` is the error object; when absent, +-- it defaults to "assertion failed!". function assert(v [, message]) end --- --- This function is a generic interface to the garbage collector. It --- performs different functions according to its first argument, `opt`: --- "collect": performs a full garbage-collection cycle. This is the default --- option. +-- This function is a generic interface to the garbage collector. It performs different functions +-- according to its first argument, `opt`: +-- "collect": performs a full garbage-collection cycle. This is the default option. -- "stop": stops automatic execution of the garbage collector. -- "restart": restarts automatic execution of the garbage collector. --- "count": returns the total memory in use by Lua in Kbytes. The value has a --- fractional part, so that it multiplied by 1024 gives the exact --- number of bytes in use by Lua. --- "step": performs a garbage-collection step. The step "size" is controlled --- by `arg`. With a zero value, the collector will perform one basic --- (indivisible) step. For non-zero values, the collector will perform --- as if that amount of memory (in Kbytes) had been allocated by Lua. --- Returns true if the step finished a collection cycle. --- "isrunning": returns a boolean that tells whether the collector is running --- (i.e., not stopped). --- "incremental": change the collector mode to incremental. This option can be --- followed by three numbers: the garbage-collector pause, the --- step multiplier, and the step size (see §2.5.1). A zero means to not --- change that value. --- "generational": change the collector mode to generational. This option can --- be followed by two numbers: the garbage-collector minor --- multiplier and the major multiplier (see §2.5.2). A zero --- means to not change that value. +-- "count": returns the total memory in use by Lua in Kbytes. The value has a fractional part, +-- so that it multiplied by 1024 gives the exact number of bytes in use by Lua. +-- "step": performs a garbage-collection step. The step "size" is controlled by `arg`. With a +-- zero value, the collector will perform one basic (indivisible) step. For non-zero values, +-- the collector will perform as if that amount of memory (in Kbytes) had been allocated +-- by Lua. Returns true if the step finished a collection cycle. +-- "isrunning": returns a boolean that tells whether the collector is running (i.e., not +-- stopped). +-- "incremental": change the collector mode to incremental. This option can be followed +-- by three numbers: the garbage-collector pause, the step multiplier, and the step size +-- (see §2.5.1). A zero means to not change that value. +-- "generational": change the collector mode to generational. This option can be followed +-- by two numbers: the garbage-collector minor multiplier and the major multiplier (see +-- §2.5.2). A zero means to not change that value. -- -- See §2.5 for more details about garbage collection and some of these options. function collectgarbage([opt [, arg]]) end --- --- Opens the named file and executes its content as a Lua chunk. When --- called without arguments, --- `dofile` executes the content of the standard input (`stdin`). Returns --- all values returned by the chunk. In case of errors, `dofile` propagates --- the error to its caller. (That is, `dofile` does not run in protected mode.) +-- Opens the named file and executes its content as a Lua chunk. When called without arguments, +-- `dofile` executes the content of the standard input (`stdin`). Returns all values returned +-- by the chunk. In case of errors, `dofile` propagates the error to its caller. (That is, +-- `dofile` does not run in protected mode.) function dofile([filename]) end --- --- Raises an error (see §2.3) with `message` as the error object. This function --- never returns. +-- Raises an error (see §2.3) with `message` as the error object. This function never returns. -- --- Usually, `error` adds some information about the error position at the --- beginning of the message, if the message is a string. The `level` argument --- specifies how to get the error position. With level 1 (the default), the --- error position is where the `error` function was called. Level 2 points the --- error to where the function that called `error` was called; and so on. --- Passing a level 0 avoids the addition of error position information to the --- message. +-- Usually, `error` adds some information about the error position at the beginning of the +-- message, if the message is a string. The `level` argument specifies how to get the error +-- position. With level 1 (the default), the error position is where the `error` function +-- was called. Level 2 points the error to where the function that called `error` was called; +-- and so on. Passing a level 0 avoids the addition of error position information to the message. function error(message [, level]) end --- --- Returns the current environment in use by the function. `f` can be a Lua --- function or a number that specifies the function at that stack level: --- Level 1 is the function calling `getfenv`. If the given function is not a --- Lua function, or if `f` is 0, `getfenv` returns the global environment. The --- default for `f` is 1. +-- Returns the current environment in use by the function. `f` can be a Lua function or a +-- number that specifies the function at that stack level: Level 1 is the function calling +-- `getfenv`. If the given function is not a Lua function, or if `f` is 0, `getfenv` returns +-- the global environment. The default for `f` is 1. -- -- Deprecated in Lua 5.2. function getfenv([f]) end --- --- If `object` does not have a metatable, returns nil. Otherwise, if the --- object's metatable has a `__metatable` field, returns the associated --- value. Otherwise, returns the metatable of the given object. +-- If `object` does not have a metatable, returns nil. Otherwise, if the object's metatable +-- has a `__metatable` field, returns the associated value. Otherwise, returns the metatable +-- of the given object. function getmetatable(object) end --- --- Returns three values (an iterator function, the table `t`, and 0) so that the --- construction +-- Returns three values (an iterator function, the table `t`, and 0) so that the construction -- -- for i,v in ipairs(t) do *body* end -- --- will iterate over the key-value pairs (`1,t[1]`), (`2,t[2]`), ···, up to the --- first absent index. +-- will iterate over the key-value pairs (`1,t[1]`), (`2,t[2]`), ···, up to the first +-- absent index. function ipairs(t) end --- -- Loads a chunk. -- --- If `chunk` is a string, the chunk is this string. If `chunk` is a function, --- `load` calls it repeatedly to get the chunk pieces. Each call to `chunk` must --- return a string that concatenates with previous results. A return of an empty --- string, nil, or no value signals the end of the chunk. --- --- If there are no syntactic errors, `load` returns the compiled chunk as a --- function; otherwise, it returns nil plus the error message. --- --- When you load a main chunk, the resulting function will always have exactly --- one upvalue, the `_ENV` variable (see §2.2). However, when you load a binary --- chunk created from a function (see `string.dump`), the resulting function can --- have an arbitrary number of upvalues, and there is no guarantee that its --- first upvalue will be the `_ENV` variable. (A non-main function may not even --- have an `_ENV` upvalue.) --- --- Regardless, if the resulting function has any upvalues, its first upvalue is --- set to the value of `env`, if that parameter is given, or to the value of the --- global environment. Other upvalues are initialized with nil. All upvalues are --- fresh, that is, they are not shared with any other function. --- --- `chunkname` is used as the name of the chunk for error messages and debug --- information (see §4.7). When absent, it defaults to `chunk`, if `chunk` is a --- string, or to "`=(load)`" otherwise. --- --- The string `mode` controls whether the chunk can be text or binary (that is, --- a precompiled chunk). It may be the string "`b`" (only binary chunks), "`t`" --- (only text chunks), or "`bt`" (both binary and text). The default is "`bt`". --- --- It is safe to load malformed binary chunks; `load` signals an appropriate --- error. However, Lua does not check the consistency of the code inside binary --- chunks; running maliciously crafted bytecode can crash the interpreter. +-- If `chunk` is a string, the chunk is this string. If `chunk` is a function, `load` calls +-- it repeatedly to get the chunk pieces. Each call to `chunk` must return a string that +-- concatenates with previous results. A return of an empty string, nil, or no value signals +-- the end of the chunk. +-- +-- If there are no syntactic errors, `load` returns the compiled chunk as a function; otherwise, +-- it returns nil plus the error message. +-- +-- When you load a main chunk, the resulting function will always have exactly one upvalue, the +-- `_ENV` variable (see §2.2). However, when you load a binary chunk created from a function +-- (see `string.dump`), the resulting function can have an arbitrary number of upvalues, +-- and there is no guarantee that its first upvalue will be the `_ENV` variable. (A non-main +-- function may not even have an `_ENV` upvalue.) +-- +-- Regardless, if the resulting function has any upvalues, its first upvalue is set to the +-- value of `env`, if that parameter is given, or to the value of the global environment. Other +-- upvalues are initialized with nil. All upvalues are fresh, that is, they are not shared with +-- any other function. +-- +-- `chunkname` is used as the name of the chunk for error messages and debug information (see +-- §4.7). When absent, it defaults to `chunk`, if `chunk` is a string, or to "`=(load)`" +-- otherwise. +-- +-- The string `mode` controls whether the chunk can be text or binary (that is, a precompiled +-- chunk). It may be the string "`b`" (only binary chunks), "`t`" (only text chunks), or "`bt`" +-- (both binary and text). The default is "`bt`". +-- +-- It is safe to load malformed binary chunks; `load` signals an appropriate error. However, +-- Lua does not check the consistency of the code inside binary chunks; running maliciously +-- crafted bytecode can crash the interpreter. function load(chunk [, chunkname [, mode [, env]]]) end --- --- Similar to `load`, but gets the chunk from file `filename` or from the --- standard input, if no file name is given. +-- Similar to `load`, but gets the chunk from file `filename` or from the standard input, +-- if no file name is given. function loadfile([filename [, mode [, env]]]) end --- --- Similar to `load`, but gets the chunk from the given string. To load and --- run a given string, use the idiom assert(loadstring(s))() When absent, --- `chunkname` defaults to the given string. +-- Similar to `load`, but gets the chunk from the given string. To load and run a given string, +-- use the idiom assert(loadstring(s))() When absent, `chunkname` defaults to the given string. -- -- Deprecated in Lua 5.2. function loadstring(string [, chunkname]) --- --- Creates a module. If there is a table in `package.loaded[name]`, this table --- is the module. Otherwise, if there is a global table `t` with the given name, --- this table is the module. Otherwise creates a new table `t` and sets it as --- the value of the global `name` and the value of `package.loaded[name]`. This --- function also initializes `t._NAME` with the given name, `t._M` with the --- module (`t` itself), and `t._PACKAGE` with the package name (the full module --- name minus last component; see below). Finally, `module` sets `t` as the new --- environment of the current function and the new value of --- `package.loaded[name]`, so that `require` returns `t`. If `name` is a --- compound name (that is, one with components separated by dots), `module` --- creates (or reuses, if they already exist) tables for each component. For --- instance, if `name` is `a.b.c`, then `module` stores the module table in --- field `c` of field `b` of global `a`. This function can receive optional --- *options* after the module name, where each option is a function to be --- applied over the module. +-- Creates a module. If there is a table in `package.loaded[name]`, this table is the +-- module. Otherwise, if there is a global table `t` with the given name, this table is the +-- module. Otherwise creates a new table `t` and sets it as the value of the global `name` +-- and the value of `package.loaded[name]`. This function also initializes `t._NAME` with the +-- given name, `t._M` with the module (`t` itself), and `t._PACKAGE` with the package name +-- (the full module name minus last component; see below). Finally, `module` sets `t` as the +-- new environment of the current function and the new value of `package.loaded[name]`, so that +-- `require` returns `t`. If `name` is a compound name (that is, one with components separated +-- by dots), `module` creates (or reuses, if they already exist) tables for each component. For +-- instance, if `name` is `a.b.c`, then `module` stores the module table in field `c` of field +-- `b` of global `a`. This function can receive optional *options* after the module name, +-- where each option is a function to be applied over the module. -- -- Deprecated in Lua 5.2. function module(name [, ···]) end --- --- Allows a program to traverse all fields of a table. Its first argument is --- a table and its second argument is an index in this table. A call to `next` --- returns the next index of the table and its associated value. When called --- with nil as its second argument, `next` returns an initial index and its --- associated value. When called with the last index, or with nil in an empty --- table, `next` returns nil. If the second argument is absent, then it is --- interpreted as nil. In particular, you can use `next(t)` to check whether a --- table is empty. +-- Allows a program to traverse all fields of a table. Its first argument is a table and its +-- second argument is an index in this table. A call to `next` returns the next index of the +-- table and its associated value. When called with nil as its second argument, `next` returns +-- an initial index and its associated value. When called with the last index, or with nil in +-- an empty table, `next` returns nil. If the second argument is absent, then it is interpreted +-- as nil. In particular, you can use `next(t)` to check whether a table is empty. -- --- The order in which the indices are enumerated is not specified, *even for --- numeric indices*. (To traverse a table in numeric order, use a numerical --- `for`.) +-- The order in which the indices are enumerated is not specified, *even for numeric indices*. (To +-- traverse a table in numeric order, use a numerical `for`.) -- --- The behavior of `next` is undefined if, during the traversal, you assign any --- value to a non-existent field in the table. You may however modify existing --- fields. In particular, you may set existing fields to nil. +-- The behavior of `next` is undefined if, during the traversal, you assign any value to a +-- non-existent field in the table. You may however modify existing fields. In particular, +-- you may set existing fields to nil. function next(table [, index]) end --- --- If `t` has a metamethod `__pairs`, calls it with `t` as argument and returns --- the first three results from the call. +-- If `t` has a metamethod `__pairs`, calls it with `t` as argument and returns the first three +-- results from the call. -- --- Otherwise, returns three values: the `next` function, the table `t`, and nil, --- so that the construction +-- Otherwise, returns three values: the `next` function, the table `t`, and nil, so that the +-- construction -- -- for k,v in pairs(t) do *body* end -- -- will iterate over all key–value pairs of table `t`. -- --- See function `next` for the caveats of modifying the table during its --- traversal. +-- See function `next` for the caveats of modifying the table during its traversal. function pairs(t) end --- --- Calls the function `f` with the given arguments in *protected mode*. This --- means that any error inside `f` is not propagated; instead, `pcall` catches --- the error and returns a status code. Its first result is the status code (a --- boolean), which is true if the call succeeds without errors. In such case, --- `pcall` also returns all results from the call, after this first result. In --- case of any error, `pcall` returns false plus the error object. Note that +-- Calls the function `f` with the given arguments in *protected mode*. This means that any +-- error inside `f` is not propagated; instead, `pcall` catches the error and returns a status +-- code. Its first result is the status code (a boolean), which is true if the call succeeds +-- without errors. In such case, `pcall` also returns all results from the call, after this +-- first result. In case of any error, `pcall` returns false plus the error object. Note that -- errors caught by `pcall` do not call a message handler. function pcall(f [, arg1, ···]) end --- --- Receives any number of arguments and prints their values to `stdout`, --- converting each argument to a string following the same rules of `tostring`. +-- Receives any number of arguments and prints their values to `stdout`, converting each argument +-- to a string following the same rules of `tostring`. -- --- The function `print` is not intended for formatted output, but only as a --- quick way to show a value, for instance for debugging. For complete control --- over the output, use `string.format` and `io.write`. +-- The function `print` is not intended for formatted output, but only as a quick way to show a +-- value, for instance for debugging. For complete control over the output, use `string.format` +-- and `io.write`. function print(···) end --- --- Checks whether `v1` is equal to `v2`, without invoking the `__eq` --- metamethod. Returns a boolean. +-- Checks whether `v1` is equal to `v2`, without invoking the `__eq` metamethod. Returns a boolean. function rawequal(v1, v2) end --- --- Gets the real value of `table[index]`, without using the `__index` --- metavalue. `table` must be a table; `index` may be any value. +-- Gets the real value of `table[index]`, without using the `__index` metavalue. `table` must +-- be a table; `index` may be any value. function rawget(table, index) end --- --- Returns the length of the object `v`, --- which must be a table or a string, --- without invoking the `__len` metamethod. --- Returns an integer. +-- Returns the length of the object `v`, which must be a table or a string, without invoking the +-- `__len` metamethod. Returns an integer. -- -- New in Lua 5.2. function rawlen(v) end --- --- Sets the real value of `table[index]` to `value`, without using the --- `__newindex` metavalue. `table` must be a table, `index` any value different --- from nil and NaN, and `value` any Lua value. +-- Sets the real value of `table[index]` to `value`, without using the `__newindex` +-- metavalue. `table` must be a table, `index` any value different from nil and NaN, and `value` +-- any Lua value. -- -- This function returns `table`. function rawset(table, index, value) end --- --- Sets the environment to be used by the given function. `f` can be a Lua --- function or a number that specifies the function at that stack level: Level 1 --- is the function calling `setfenv`. `setfenv` returns the given function. As a --- special case, when `f` is 0 `setfenv` changes the environment of the running --- thread. In this case, `setfenv` returns no values. +-- Sets the environment to be used by the given function. `f` can be a Lua function or a +-- number that specifies the function at that stack level: Level 1 is the function calling +-- `setfenv`. `setfenv` returns the given function. As a special case, when `f` is 0 `setfenv` +-- changes the environment of the running thread. In this case, `setfenv` returns no values. -- -- Deprecated in Lua 5.2. function setfenv(f, table) end --- --- If `index` is a number, returns all arguments after argument number --- `index`; a negative number indexes from the end (-1 is the last argument). --- Otherwise, `index` must be the string `"#"`, and `select` returns the total --- number of extra arguments it received. +-- If `index` is a number, returns all arguments after argument number `index`; a negative number +-- indexes from the end (-1 is the last argument). Otherwise, `index` must be the string `"#"`, +-- and `select` returns the total number of extra arguments it received. function select(index, ···) end --- --- Sets the metatable for the given table. If `metatable` is nil, removes the --- metatable of the given table. If the original metatable has a `__metatable` --- field, raises an error. +-- Sets the metatable for the given table. If `metatable` is nil, removes the metatable of the +-- given table. If the original metatable has a `__metatable` field, raises an error. -- -- This function returns `table`. -- --- To change the metatable of other types from Lua code, you must use the debug --- library (see §6.10). +-- To change the metatable of other types from Lua code, you must use the debug library +-- (see §6.10). function setmetatable(table, metatable) end --- --- When called with no `base`, `tonumber` tries to convert its argument to a --- number. If the argument is already a number or a string convertible to a --- number, then `tonumber` returns this number; otherwise, it --- returns nil. +-- When called with no `base`, `tonumber` tries to convert its argument to a number. If the +-- argument is already a number or a string convertible to a number, then `tonumber` returns +-- this number; otherwise, it returns nil. -- --- The conversion of strings can result in integers or floats, according to the --- lexical conventions of Lua (see §3.1). The string may have leading and --- trailing spaces and a sign. +-- The conversion of strings can result in integers or floats, according to the lexical +-- conventions of Lua (see §3.1). The string may have leading and trailing spaces and a sign. -- --- When called with `base`, then `e` must be a string to be interpreted as an --- integer numeral in that base. The base may be any integer between 2 and 36, --- inclusive. In bases above 10, the letter '`A`' (in either upper or lower --- case) represents 10, '`B`' represents 11, and so forth, with '`Z`' --- representing 35. If the string `e` is not a valid numeral in the given base, +-- When called with `base`, then `e` must be a string to be interpreted as an integer numeral +-- in that base. The base may be any integer between 2 and 36, inclusive. In bases above 10, +-- the letter '`A`' (in either upper or lower case) represents 10, '`B`' represents 11, and so +-- forth, with '`Z`' representing 35. If the string `e` is not a valid numeral in the given base, -- the function returns nil function tonumber(e [, base]) end --- --- Receives a value of any type and converts it to a string in a human-readable --- format. Floats always produce strings with some floating-point indication --- (either a decimal dot or an exponent). +-- Receives a value of any type and converts it to a string in a human-readable format. Floats +-- always produce strings with some floating-point indication (either a decimal dot or an +-- exponent). -- --- If the metatable of `v` has a `__tostring` field, then `tostring` calls the --- corresponding value with `v` as argument, and uses the result of the call as --- its result. Otherwise, if the metatable of `v` has a `__name` field with a --- string value, `tostring` may use that string in its final result. +-- If the metatable of `v` has a `__tostring` field, then `tostring` calls the corresponding +-- value with `v` as argument, and uses the result of the call as its result. Otherwise, if the +-- metatable of `v` has a `__name` field with a string value, `tostring` may use that string +-- in its final result. -- -- For complete control of how numbers are converted, use `string.format`. function tostring(v) end --- --- Returns the type of its only argument, coded as a string. The possible --- results of this function are " --- `nil`" (a string, not the value nil), "`number`", "`string`", "`boolean`", +-- Returns the type of its only argument, coded as a string. The possible results of this +-- function are " `nil`" (a string, not the value nil), "`number`", "`string`", "`boolean`", -- "`table`", "`function`", "`thread`", and "`userdata`". function type(v) end --- --- Returns the elements from the given table. This function is equivalent to --- return list[i], list[i+1], ···, list[j] except that the above code can --- be written only for a fixed number of elements. By default, `i` is 1 and --- `j` is the length of the list, as defined by the length operator --- (see §2.5.5). +-- Returns the elements from the given table. This function is equivalent to return list[i], +-- list[i+1], ···, list[j] except that the above code can be written only for a fixed number +-- of elements. By default, `i` is 1 and `j` is the length of the list, as defined by the length +-- operator (see §2.5.5). -- -- Deprecated in Lua 5.2. function unpack(list [, i [, j]]) end --- --- Emits a warning with a message composed by the concatenation of all its --- arguments (which should be strings). +-- Emits a warning with a message composed by the concatenation of all its arguments (which +-- should be strings). -- --- By convention, a one-piece message starting with '`@`' is intended to be a --- *control message*, which is a message to the warning system itself. In --- particular, the standard warning function in Lua recognizes the control --- messages "`@off`", to stop the emission of warnings, and "`@on`", to --- (re)start the emission; it ignores unknown control messages. +-- By convention, a one-piece message starting with '`@`' is intended to be a *control message*, +-- which is a message to the warning system itself. In particular, the standard warning function in +-- Lua recognizes the control messages "`@off`", to stop the emission of warnings, and "`@on`", +-- to (re)start the emission; it ignores unknown control messages. -- -- New in Lua 5.4. function warn(msg1, ···) end --- --- This function is similar to `pcall`, except that it sets a new message --- handler `msgh`. +-- This function is similar to `pcall`, except that it sets a new message handler `msgh`. function xpcall(f, msgh [, arg1, ···]) end --- --- Closes coroutine `co`, that is, closes all its pending to-be-closed variables --- and puts the coroutine in a dead state. The given coroutine must be dead or --- suspended. In case of error closing some variable, returns false plus the --- error object; otherwise returns true. +-- Closes coroutine `co`, that is, closes all its pending to-be-closed variables and puts the +-- coroutine in a dead state. The given coroutine must be dead or suspended. In case of error +-- closing some variable, returns false plus the error object; otherwise returns true. function coroutine.close(co) end --- --- Creates a new coroutine, with body `f`. `f` must be a Lua --- function. Returns this new coroutine, an object with type `"thread"`. +-- Creates a new coroutine, with body `f`. `f` must be a Lua function. Returns this new coroutine, +-- an object with type `"thread"`. function coroutine.create(f) end --- --- Returns true when the coroutine `co` can yield. The default for `co` is the --- running coroutine. +-- Returns true when the coroutine `co` can yield. The default for `co` is the running coroutine. -- --- A coroutine is yieldable if it is not the main thread and it is not inside a --- non-yieldable C function. +-- A coroutine is yieldable if it is not the main thread and it is not inside a non-yieldable +-- C function. -- -- New in Lua 5.3. function coroutine.isyieldable([co]) end --- --- Starts or continues the execution of coroutine `co`. The first time --- you resume a coroutine, it starts running its body. The values `val1`, --- ··· are passed as the arguments to the body function. If the coroutine --- has yielded, `resume` restarts it; the values `val1`, ··· are passed --- as the results from the yield. +-- Starts or continues the execution of coroutine `co`. The first time you resume a coroutine, +-- it starts running its body. The values `val1`, ··· are passed as the arguments to the body +-- function. If the coroutine has yielded, `resume` restarts it; the values `val1`, ··· are +-- passed as the results from the yield. -- --- If the coroutine runs without any errors, `resume` returns true plus any --- values passed to `yield` (when the coroutine yields) or any values returned --- by the body function (when the coroutine terminates). If there is any error, --- `resume` returns false plus the error message. +-- If the coroutine runs without any errors, `resume` returns true plus any values passed to +-- `yield` (when the coroutine yields) or any values returned by the body function (when the +-- coroutine terminates). If there is any error, `resume` returns false plus the error message. function coroutine.resume(co [, val1, ···]) end --- --- Returns the running coroutine plus a boolean, true when the running coroutine --- is the main one. +-- Returns the running coroutine plus a boolean, true when the running coroutine is the main one. function coroutine.running() end --- --- Returns the status of the coroutine `co`, as a string: `"running"`, if --- the coroutine is running (that is, it is the one that called `status`); --- `"suspended"`, if the coroutine is suspended in a call to `yield`, or if it --- has not started running yet; `"normal"` if the coroutine is active but not --- running (that is, it has resumed another coroutine); and `"dead"` if the --- coroutine has finished its body function, or if it has stopped with an error. +-- Returns the status of the coroutine `co`, as a string: `"running"`, if the coroutine is +-- running (that is, it is the one that called `status`); `"suspended"`, if the coroutine +-- is suspended in a call to `yield`, or if it has not started running yet; `"normal"` if the +-- coroutine is active but not running (that is, it has resumed another coroutine); and `"dead"` +-- if the coroutine has finished its body function, or if it has stopped with an error. function coroutine.status(co) end --- --- Creates a new coroutine, with body `f`; `f` must be a Lua --- function. Returns a function that resumes the coroutine each time it is --- called. Any arguments passed to this function behave as the extra arguments --- to `resume`. The function returns the same values returned by `resume`, --- except the first boolean. In case of error, the function closes the coroutine --- and propagates the error. +-- Creates a new coroutine, with body `f`; `f` must be a Lua function. Returns a function that +-- resumes the coroutine each time it is called. Any arguments passed to this function behave as +-- the extra arguments to `resume`. The function returns the same values returned by `resume`, +-- except the first boolean. In case of error, the function closes the coroutine and propagates +-- the error. function coroutine.wrap(f) end --- --- Suspends the execution of the calling coroutine. Any arguments to `yield` are --- passed as extra results to `resume`. +-- Suspends the execution of the calling coroutine. Any arguments to `yield` are passed as +-- extra results to `resume`. function coroutine.yield(···) end --- --- Loads the given module. The function starts by looking into the --- `package.loaded` table to determine whether `modname` is already loaded. If --- it is, then `require` returns the value stored at `package.loaded[modname]`. --- (The absence of a second result in this case signals that this call did not --- have to load the module.) Otherwise, it tries to find a *loader* for the --- module. --- --- To find a loader, `require` is guided by the table `package.searchers`. Each --- item in this table is a search function, that searches for the module in a --- particular way. By changing this table, we can change how `require` looks for --- a module. The following explanation is based on the default configuration for --- `package.searchers`. --- --- First `require` queries `package.preload[modname]`. If it has a value, --- this value (which must be a function) is the loader. Otherwise `require` --- searches for a Lua loader using the path stored in `package.path`. If --- that also fails, it searches for a C loader using the path stored in --- `package.cpath`. If that also fails, it tries an *all-in-one* loader (see --- `package.searchers`). --- --- Once a loader is found, `require` calls the loader with two arguments: --- `modname` and an extra value, a *loader data*, also returned by the searcher. --- The loader data can be any value useful to the module; for the default --- searchers, it indicates where the loader was found. (For instance, if the --- loader came from a file, this extra value is the file path.) If the loader --- returns any non-nil value, `require` assigns the returned value to --- `package.loaded[modname]`. If the loader does not return a non-nil value and --- has not assigned any value to `package.loaded[modname]`, then `require` --- assigns true to this entry. In any case, `require` returns the final value of --- `package.loaded[modname]`. Besides that value, `require` also returns as a --- second result the loader data returned by the searcher, which indicates how --- `require` found the module. --- --- If there is any error loading or running the module, or if it cannot find --- any loader for the module, then `require` raises an error. +-- Loads the given module. The function starts by looking into the `package.loaded` table to +-- determine whether `modname` is already loaded. If it is, then `require` returns the value +-- stored at `package.loaded[modname]`. (The absence of a second result in this case signals +-- that this call did not have to load the module.) Otherwise, it tries to find a *loader* +-- for the module. +-- +-- To find a loader, `require` is guided by the table `package.searchers`. Each item in this +-- table is a search function, that searches for the module in a particular way. By changing +-- this table, we can change how `require` looks for a module. The following explanation is +-- based on the default configuration for `package.searchers`. +-- +-- First `require` queries `package.preload[modname]`. If it has a value, this value (which must be +-- a function) is the loader. Otherwise `require` searches for a Lua loader using the path stored +-- in `package.path`. If that also fails, it searches for a C loader using the path stored in +-- `package.cpath`. If that also fails, it tries an *all-in-one* loader (see `package.searchers`). +-- +-- Once a loader is found, `require` calls the loader with two arguments: `modname` and an +-- extra value, a *loader data*, also returned by the searcher. The loader data can be any +-- value useful to the module; for the default searchers, it indicates where the loader +-- was found. (For instance, if the loader came from a file, this extra value is the file +-- path.) If the loader returns any non-nil value, `require` assigns the returned value to +-- `package.loaded[modname]`. If the loader does not return a non-nil value and has not assigned +-- any value to `package.loaded[modname]`, then `require` assigns true to this entry. In any +-- case, `require` returns the final value of `package.loaded[modname]`. Besides that value, +-- `require` also returns as a second result the loader data returned by the searcher, which +-- indicates how `require` found the module. +-- +-- If there is any error loading or running the module, or if it cannot find any loader for +-- the module, then `require` raises an error. function require(modname) end --- @@ -442,89 +395,93 @@ function require(modname) end -- @class table -- @name package -- @field config (string) --- A string describing some compile-time configurations for packages. This --- string is a sequence of lines: --- The first line is the directory separator string. Default is '`\`' for --- Windows and '`/`' for all other systems. --- The second line is the character that separates templates in a path. --- Default is '`;`'. --- The third line is the string that marks the substitution points in a --- template. Default is '`?`'. --- The fourth line is a string that, in a path in Windows, is replaced by --- the executable's directory. Default is '`!`'. --- The fifth line is a mark to ignore all text after it when building the --- `luaopen_` function name. Default is '`-`'. +-- A string describing some compile-time configurations for packages. This string is a sequence +-- of lines: +-- +-- * The first line is the directory separator string. Default is '`\`' for Windows and +-- '`/`' for all other systems. +-- * The second line is the character that separates templates in a path. Default is '`;`'. +-- * The third line is the string that marks the substitution points in a template. Default +-- is '`?`'. +-- * The fourth line is a string that, in a path in Windows, is replaced by the executable's +-- directory. Default is '`!`'. +-- * The fifth line is a mark to ignore all text after it when building the `luaopen_` +-- function name. Default is '`-`'. -- -- New in Lua 5.2. -- @field cpath (string) -- A string with the path used by `require` to search for a C loader. --- Lua initializes the C path `package.cpath` in the same way it initializes --- the Lua path `package.path`, using the environment variable `LUA_CPATH_5_4` --- or the environment variable `LUA_CPATH` or a default path defined in --- `luaconf.h`. +-- +-- Lua initializes the C path `package.cpath` in the same way it initializes the Lua path +-- `package.path`, using the environment variable `LUA_CPATH_5_4` or the environment variable +-- `LUA_CPATH` or a default path defined in `luaconf.h`. -- @field loaded (table) --- A table used by `require` to control which modules are already loaded. When --- you require a module `modname` and `package.loaded[modname]` is not false, --- `require` simply returns the value stored there. --- This variable is only a reference to the real table; assignments to this --- variable do not change the table used by `require`. +-- A table used by `require` to control which modules are already loaded. When you require +-- a module `modname` and `package.loaded[modname]` is not false, `require` simply returns +-- the value stored there. +-- +-- This variable is only a reference to the real table; assignments to this variable do not +-- change the table used by `require`. -- @field loaders (table) -- See `package.searchers`. -- -- Deprecated in Lua 5.2. -- @field path (string) -- A string with the path used by `require` to search for a Lua loader. --- At start-up, Lua initializes this variable with the value of the --- environment variable `LUA_PATH_5_4` or the environment variable `LUA_PATH` --- or with a default path defined in `luaconf.h`, if those environment --- variables are not defined. A "`;;`" in the value of the environment --- variable is replaced by the default path. +-- +-- At start-up, Lua initializes this variable with the value of the environment variable +-- `LUA_PATH_5_4` or the environment variable `LUA_PATH` or with a default path defined in +-- `luaconf.h`, if those environment variables are not defined. A "`;;`" in the value of the +-- environment variable is replaced by the default path. -- @field preload (table) -- A table to store loaders for specific modules (see `require`). --- This variable is only a reference to the real table; assignments to this --- variable do not change the table used by `require`. +-- +-- This variable is only a reference to the real table; assignments to this variable do not +-- change the table used by `require`. -- @field searchers (table) -- A table used by `require` to control how to find modules. --- Each entry in this table is a *searcher function*. When looking for a --- module, `require` calls each of these searchers in ascending order, with --- the module name (the argument given to `require`) as its sole argument. --- If the searcher finds the module, it returns another function, the module --- *loader*, plus an extra value, a *loader data*, that will be passed to that --- loader and returned as a second result by `require`. If it cannot find the --- module, it returns a string explaining why (or nil if it has nothing to --- say). +-- +-- Each entry in this table is a *searcher function*. When looking for a module, `require` +-- calls each of these searchers in ascending order, with the module name (the argument given +-- to `require`) as its sole argument. If the searcher finds the module, it returns another +-- function, the module *loader*, plus an extra value, a *loader data*, that will be passed +-- to that loader and returned as a second result by `require`. If it cannot find the module, +-- it returns a string explaining why (or nil if it has nothing to say). +-- -- Lua initializes this table with four functions. --- The first searcher simply looks for a loader in the `package.preload` --- table. --- The second searcher looks for a loader as a Lua library, using the path --- stored at `package.path`. The search is done as described in function --- `package.searchpath`. --- The third searcher looks for a loader as a C library, using the path given --- by the variable `package.cpath`. Again, the search is done as described in --- function `package.searchpath`. For instance, if the C path is the string +-- +-- The first searcher simply looks for a loader in the `package.preload` table. +-- +-- The second searcher looks for a loader as a Lua library, using the path stored at +-- `package.path`. The search is done as described in function `package.searchpath`. +-- +-- The third searcher looks for a loader as a C library, using the path given by the variable +-- `package.cpath`. Again, the search is done as described in function `package.searchpath`. For +-- instance, if the C path is the string +-- -- "./?.so;./?.dll;/usr/local/?/init.so" --- the searcher for module `foo` will try to open the files `./foo.so`, --- `./foo.dll`, and `/usr/local/foo/init.so`, in that order. Once it finds --- a C library, this searcher first uses a dynamic link facility to link the --- application with the library. Then it tries to find a C function inside the --- library to be used as the loader. The name of this C function is the string --- "`luaopen_`" concatenated with a copy of the module name where each dot --- is replaced by an underscore. Moreover, if the module name has a hyphen, --- its suffix after (and including) the first hyphen is removed. For instance, --- if the module name is `a.b.c-v2.1 `, the function name will be --- `luaopen_a_b_c`. The fourth searcher tries an *all-in-one loader*. It --- searches the C path for a library for the root name of the given module. --- For instance, when requiring `a.b.c`, it will search for a C library for --- `a`. If found, it looks into it for an open function for the submodule; in --- our example, that would be `luaopen_a_b_c`. With this facility, a package --- can pack several C submodules into one single library, with each submodule --- keeping its original open function. --- All searchers except the first one (preload) return as the extra value the --- file path where the module was found, as returned by `package.searchpath`. --- The first searcher always returns the string "`:preload:`". --- Searchers should raise no errors and have no side effects in Lua. (They may --- have side effects in C, for instance by linking the application with a --- library.) +-- +-- the searcher for module `foo` will try to open the files `./foo.so`, `./foo.dll`, and +-- `/usr/local/foo/init.so`, in that order. Once it finds a C library, this searcher first +-- uses a dynamic link facility to link the application with the library. Then it tries to +-- find a C function inside the library to be used as the loader. The name of this C function +-- is the string "`luaopen_`" concatenated with a copy of the module name where each dot +-- is replaced by an underscore. Moreover, if the module name has a hyphen, its suffix after +-- (and including) the first hyphen is removed. For instance, if the module name is `a.b.c-v2.1 +-- `, the function name will be `luaopen_a_b_c`. +-- +-- The fourth searcher tries an *all-in-one loader*. It searches the C path for a library for +-- the root name of the given module. For instance, when requiring `a.b.c`, it will search for +-- a C library for `a`. If found, it looks into it for an open function for the submodule; in +-- our example, that would be `luaopen_a_b_c`. With this facility, a package can pack several +-- C submodules into one single library, with each submodule keeping its original open function. +-- +-- All searchers except the first one (preload) return as the extra value the file path +-- where the module was found, as returned by `package.searchpath`. The first searcher always +-- returns the string "`:preload:`". +-- +-- Searchers should raise no errors and have no side effects in Lua. (They may have side +-- effects in C, for instance by linking the application with a library.) -- -- New in Lua 5.2. local package @@ -532,257 +489,226 @@ local package --- -- Dynamically links the host program with the C library `libname`. -- --- If `funcname` is "`*`", then it only links with the library, making the --- symbols exported by the library available to other dynamically linked --- libraries. Otherwise, it looks for a function `funcname` inside the library --- and returns this function as a C function. So, `funcname` must follow the --- `lua_CFunction` prototype (see `lua_CFunction`). --- --- This is a low-level function. It completely bypasses the package and module --- system. Unlike `require`, it does not perform any path searching and does --- not automatically adds extensions. `libname` must be the complete file name --- of the C library, including if necessary a path and an extension. `funcname` --- must be the exact name exported by the C library (which may depend on the --- C compiler and linker used). --- --- This function is not supported by Standard C. As such, it is only available --- on some platforms (Windows, Linux, Mac OS X, Solaris, BSD, plus other Unix --- systems that support the `dlfcn` standard). --- --- This function is inherently insecure, as it allows Lua to call any function --- in any readable dynamic library in the system. (Lua calls any function --- assuming the function has a proper prototype and respects a proper protocol --- (see lua_CFunction). Therefore, calling an arbitrary function in an arbitrary --- dynamic library more often than not results in an access violation.) +-- If `funcname` is "`*`", then it only links with the library, making the symbols exported +-- by the library available to other dynamically linked libraries. Otherwise, it looks for +-- a function `funcname` inside the library and returns this function as a C function. So, +-- `funcname` must follow the `lua_CFunction` prototype (see `lua_CFunction`). +-- +-- This is a low-level function. It completely bypasses the package and module system. Unlike +-- `require`, it does not perform any path searching and does not automatically adds +-- extensions. `libname` must be the complete file name of the C library, including if necessary +-- a path and an extension. `funcname` must be the exact name exported by the C library (which +-- may depend on the C compiler and linker used). +-- +-- This function is not supported by Standard C. As such, it is only available on some platforms +-- (Windows, Linux, Mac OS X, Solaris, BSD, plus other Unix systems that support the `dlfcn` +-- standard). +-- +-- This function is inherently insecure, as it allows Lua to call any function in any readable +-- dynamic library in the system. (Lua calls any function assuming the function has a proper +-- prototype and respects a proper protocol (see lua_CFunction). Therefore, calling an arbitrary +-- function in an arbitrary dynamic library more often than not results in an access violation.) function package.loadlib(libname, funcname) end --- -- Searches for the given `name` in the given `path`. -- --- A path is a string containing a sequence of _templates_ separated by --- semicolons. For each template, the function replaces each interrogation mark --- (if any) in the template with a copy of `name` wherein all occurrences of --- `sep` (a dot, by default) were replaced by `rep` (the system's directory --- separator, by default), and then tries to open the resulting file name. +-- A path is a string containing a sequence of _templates_ separated by semicolons. For each +-- template, the function replaces each interrogation mark (if any) in the template with a copy +-- of `name` wherein all occurrences of `sep` (a dot, by default) were replaced by `rep` (the +-- system's directory separator, by default), and then tries to open the resulting file name. -- For instance, if the path is the string +-- -- "./?.lua;./?.lc;/usr/local/?/init.lua" --- the search for the name `foo.a` will try to open the files `./foo/a.lua`, --- `./foo/a.lc`, and `/usr/local/foo/a/init.lua`, in that order. --- Returns the resulting name of the first file that it can open in read mode --- (after closing the file), or nil plus an error message if none succeeds. --- (This error message lists all file names it tried to open.) +-- +-- the search for the name `foo.a` will try to open the files `./foo/a.lua`, `./foo/a.lc`, and +-- `/usr/local/foo/a/init.lua`, in that order. +-- +-- Returns the resulting name of the first file that it can open in read mode (after closing +-- the file), or nil plus an error message if none succeeds. (This error message lists all file +-- names it tried to open.) -- -- New in Lua 5.2. function package.searchpath(name, path [, sep [, rep]]) end --- --- Sets a metatable for `module` with its `__index` field referring to the --- global environment, so that this module inherits values from the global --- environment. To be used as an option to function `module`. +-- Sets a metatable for `module` with its `__index` field referring to the global environment, +-- so that this module inherits values from the global environment. To be used as an option to +-- function `module`. -- -- Deprecated in Lua 5.2. function package.seeall(module) end --- --- Returns the internal numerical codes of the characters `s[i]`, `s[i+1]`, --- ···, `s[j]`. The default value for `i` is 1; the default value for `j` --- is `i`. These indices are corrected following the same rules of function --- `string.sub`. +-- Returns the internal numerical codes of the characters `s[i]`, `s[i+1]`, ···, `s[j]`. The +-- default value for `i` is 1; the default value for `j` is `i`. These indices are corrected +-- following the same rules of function `string.sub`. -- -- Numerical codes are not necessarily portable across platforms. function string.byte(s [, i [, j]]) end --- --- Receives zero or more integers. Returns a string with length equal to --- the number of arguments, in which each character has the internal numerical --- code equal to its corresponding argument. +-- Receives zero or more integers. Returns a string with length equal to the number of arguments, +-- in which each character has the internal numerical code equal to its corresponding argument. -- -- Numerical codes are not necessarily portable across platforms. function string.char(···) end --- --- Returns a string containing a binary representation (a _binary chunk_) of the --- given function, so that a later `load` on this string returns a copy of the --- function (but with new upvalues). If `strip` is a true value, the binary --- representation is created without debug information about the function (local --- variable names, lines, etc.). +-- Returns a string containing a binary representation (a _binary chunk_) of the given function, so +-- that a later `load` on this string returns a copy of the function (but with new upvalues). If +-- `strip` is a true value, the binary representation is created without debug information +-- about the function (local variable names, lines, etc.). -- --- Functions with upvalues have only their number of upvalues saved. When --- (re)loaded, those upvalues receive fresh instances. (See the `load` function --- for details about how these upvalues are initialized. You can use the debug --- library to serialize and reload the upvalues of a function in a way adequate --- to your needs.) +-- Functions with upvalues have only their number of upvalues saved. When (re)loaded, those +-- upvalues receive fresh instances. (See the `load` function for details about how these +-- upvalues are initialized. You can use the debug library to serialize and reload the upvalues +-- of a function in a way adequate to your needs.) function string.dump(function [, strip]) end --- --- Looks for the first match of `pattern` (see §6.4.1) in the string `s`. If it --- finds a match, then `find` returns the indices of `s` where this occurrence --- starts and ends; otherwise, it returns nil. A third, optional numerical --- argument `init` specifies where to start the search; its default value is 1 --- and can be negative. A value of true as a fourth, optional argument `plain` --- turns off the pattern matching facilities, so the function does a plain --- "find substring" operation, with no characters in `pattern` being considered --- magic. +-- Looks for the first match of `pattern` (see §6.4.1) in the string `s`. If it finds a match, +-- then `find` returns the indices of `s` where this occurrence starts and ends; otherwise, +-- it returns nil. A third, optional numerical argument `init` specifies where to start the +-- search; its default value is 1 and can be negative. A value of true as a fourth, optional +-- argument `plain` turns off the pattern matching facilities, so the function does a plain +-- "find substring" operation, with no characters in `pattern` being considered magic. -- --- If the pattern has captures, then in a successful match the captured values --- are also returned, after the two indices. +-- If the pattern has captures, then in a successful match the captured values are also returned, +-- after the two indices. function string.find(s, pattern [, init [, plain]]) end --- --- Returns a formatted version of its variable number of arguments following the --- description given in its first argument, which must be a string. The format --- string follows the same rules as the ISO C function `sprintf`. The only --- differences are that the conversion specifiers and modifiers `*`, `h`, `L`, --- `l`, and `n` are not supported and that there is an extra specifier, `q`. +-- Returns a formatted version of its variable number of arguments following the description +-- given in its first argument, which must be a string. The format string follows the same rules +-- as the ISO C function `sprintf`. The only differences are that the conversion specifiers and +-- modifiers `*`, `h`, `L`, `l`, and `n` are not supported and that there is an extra specifier, +-- `q`. -- --- The specifier `q` formats booleans, nil, numbers, and strings in a way that --- the result is a valid constant in Lua source code. Booleans and nil are --- written in the obvious way (`true`, `false`, `nil`). Floats are written in --- hexadecimal, to preserve full precision. A string is written between double --- quotes, using escape sequences when necessary to ensure that it can safely be --- read back by the Lua interpreter. For instance, the call +-- The specifier `q` formats booleans, nil, numbers, and strings in a way that the result is a +-- valid constant in Lua source code. Booleans and nil are written in the obvious way (`true`, +-- `false`, `nil`). Floats are written in hexadecimal, to preserve full precision. A string is +-- written between double quotes, using escape sequences when necessary to ensure that it can +-- safely be read back by the Lua interpreter. For instance, the call -- -- string.format('%q', 'a string with "quotes" and \n new line') -- -- may produce the string: -- --- "a string with \"quotes\" and \ --- new line" +-- "a string with \"quotes\" and \ new line" -- -- This specifier does not support modifiers (flags, width, length). -- --- The conversion specifiers `A` and `a` (when available), `E`, `e`, `f`, `G`, --- and `g` all expect a number as argument. The specifiers `c`, `d`, `i`, `o`, --- `u`, `X`, and `x` expect an integer. When Lua is compiled with a C89 --- compiler, the specifiers `A` and `a` (hexadecimal floats) do not support --- modifiers. +-- The conversion specifiers `A` and `a` (when available), `E`, `e`, `f`, `G`, and `g` all +-- expect a number as argument. The specifiers `c`, `d`, `i`, `o`, `u`, `X`, and `x` expect an +-- integer. When Lua is compiled with a C89 compiler, the specifiers `A` and `a` (hexadecimal +-- floats) do not support modifiers. -- --- The specifier `s` expects a string; if its argument is not a string, it is --- converted to one following the same rules of `tostring`. If the specifier has --- any modifier, the corresponding string argument should not contain zeros. +-- The specifier `s` expects a string; if its argument is not a string, it is converted to one +-- following the same rules of `tostring`. If the specifier has any modifier, the corresponding +-- string argument should not contain zeros. -- --- The specifier `p` formats the pointer returned by `lua_topointer`. That gives --- a unique string identifier for tables, userdata, threads, strings, and --- functions. For other values (numbers, nil, booleans), this specifier results --- in a string representing the pointer `NULL`. +-- The specifier `p` formats the pointer returned by `lua_topointer`. That gives a unique string +-- identifier for tables, userdata, threads, strings, and functions. For other values (numbers, +-- nil, booleans), this specifier results in a string representing the pointer `NULL`. function string.format(formatstring, ···) end --- --- Returns an iterator function that, each time it is called, returns the --- next captures from `pattern` (see §6.4.1) over the string `s`. If `pattern` --- specifies no captures, then the whole match is produced in each call. A --- third, optional argument `init` specifies where to start the search; its --- default value is 1 and can be negative. +-- Returns an iterator function that, each time it is called, returns the next captures from +-- `pattern` (see §6.4.1) over the string `s`. If `pattern` specifies no captures, then the +-- whole match is produced in each call. A third, optional argument `init` specifies where to +-- start the search; its default value is 1 and can be negative. -- --- As an example, the following loop will iterate over all the words from string --- `s`, printing one per line: +-- As an example, the following loop will iterate over all the words from string `s`, printing +-- one per line: -- --- s = "hello world from Lua" --- for w in string.gmatch(s, "%a+") do --- print(w) --- end +-- s = "hello world from Lua" for w in string.gmatch(s, "%a+") do +-- print(w) end -- --- The next example collects all pairs `key=value` from the given string into a --- table: +-- The next example collects all pairs `key=value` from the given string into a table: -- --- t = {} --- s = "from=world, to=Lua" --- for k, v in string.gmatch(s, "(%w+)=(%w+)") do --- t[k] = v --- end +-- t = {} s = "from=world, to=Lua" for k, v in string.gmatch(s, "(%w+)=(%w+)") do +-- t[k] = v end -- --- For this function, a caret '`^`' at the start of a pattern does not work as --- an anchor, as this would prevent the iteration. +-- For this function, a caret '`^`' at the start of a pattern does not work as an anchor, +-- as this would prevent the iteration. function string.gmatch(s, pattern [, init]) end --- --- Returns a copy of `s` in which all (or the first `n`, if given) --- occurrences of the `pattern` (see §6.4.1) have been replaced by a replacement --- string specified by `repl`, which can be a string, a table, or a function. --- `gsub` also returns, as its second value, the total number of matches that --- occurred. The name `gsub` comes from "Global SUBstitution". +-- Returns a copy of `s` in which all (or the first `n`, if given) occurrences of the `pattern` +-- (see §6.4.1) have been replaced by a replacement string specified by `repl`, which can be +-- a string, a table, or a function. `gsub` also returns, as its second value, the total number +-- of matches that occurred. The name `gsub` comes from "Global SUBstitution". -- --- If `repl` is a string, then its value is used for replacement. The character --- `%` works as an escape character: any sequence in `repl` of the form `%d`, --- with `d` between 1 and 9, stands for the value of the `d`-th captured --- substring; the sequence `%0` stands for the whole match; the sequence `%%` --- stands for a single `%`. +-- If `repl` is a string, then its value is used for replacement. The character `%` works as an +-- escape character: any sequence in `repl` of the form `%d`, with `d` between 1 and 9, stands +-- for the value of the `d`-th captured substring; the sequence `%0` stands for the whole match; +-- the sequence `%%` stands for a single `%`. -- --- If `repl` is a table, then the table is queried for every match, using --- the first capture as the key. +-- If `repl` is a table, then the table is queried for every match, using the first capture as +-- the key. -- --- If `repl` is a function, then this function is called every time a match --- occurs, with all captured substrings passed as arguments, in order. +-- If `repl` is a function, then this function is called every time a match occurs, with all +-- captured substrings passed as arguments, in order. -- --- In any case, if the pattern specifies no captures, then it behaves as if the --- whole pattern was inside a capture. +-- In any case, if the pattern specifies no captures, then it behaves as if the whole pattern +-- was inside a capture. -- --- If the value returned by the table query or by the function call is a --- string or a number, then it is used as the replacement string; otherwise, --- if it is false or nil, then there is no replacement (that is, the original --- match is kept in the string). +-- If the value returned by the table query or by the function call is a string or a number, +-- then it is used as the replacement string; otherwise, if it is false or nil, then there is +-- no replacement (that is, the original match is kept in the string). -- -- Here are some examples: -- --- x = string.gsub("hello world", "(%w+)", "%1 %1") --- --> x="hello hello world world" --- x = string.gsub("hello world", "%w+", "%0 %0", 1) --- --> x="hello hello world" --- x = string.gsub("hello world from Lua", "(%w+)%s*(%w+)", "%2 %1") --- --> x="world hello Lua from" --- x = string.gsub("home = $HOME, user = $USER", "%$(%w+)", os.getenv) --- --> x="home = /home/roberto, user = roberto" +-- x = string.gsub("hello world", "(%w+)", "%1 %1") --> x="hello hello world world" x = +-- string.gsub("hello world", "%w+", "%0 %0", 1) --> x="hello hello world" x = string.gsub("hello +-- world from Lua", "(%w+)%s*(%w+)", "%2 %1") --> x="world hello Lua from" x = string.gsub("home +-- = $HOME, user = $USER", "%$(%w+)", os.getenv) --> x="home = /home/roberto, user = roberto" -- x = string.gsub("4+5 = $return 4+5$", "%$(.-)%$", function (s) --- return load(s)() --- end) --- --> x="4+5 = 9" --- local t = {name="lua", version="5.4"} --- x = string.gsub("$name-$version.tar.gz", "%$(%w+)", t) --- --> x="lua-5.4.tar.gz" +-- return load(s)() end) +-- --> x="4+5 = 9" local t = {name="lua", version="5.4"} x = string.gsub("$name-$version.tar.gz", +-- "%$(%w+)", t) --> x="lua-5.4.tar.gz" function string.gsub(s, pattern, repl [, n]) end --- --- Receives a string and returns its length. The empty string `""` has --- length 0. Embedded zeros are counted, so `"a\000bc\000"` has length 5. +-- Receives a string and returns its length. The empty string `""` has length 0. Embedded zeros +-- are counted, so `"a\000bc\000"` has length 5. function string.len(s) end --- --- Receives a string and returns a copy of this string with all uppercase --- letters changed to lowercase. All other characters are left unchanged. The --- definition of what an uppercase letter is depends on the current locale. +-- Receives a string and returns a copy of this string with all uppercase letters changed to +-- lowercase. All other characters are left unchanged. The definition of what an uppercase +-- letter is depends on the current locale. function string.lower(s) end --- --- Looks for the first *match* of the `pattern` (see §6.4.1) in the string `s`. --- If it finds one, then `match` returns the captures from the pattern; --- otherwise it returns nil. If `pattern` specifies no captures, then the whole --- match is returned. A third, optional numerical argument `init` specifies --- where to start the search; its default value is 1 and can be negative. +-- Looks for the first *match* of the `pattern` (see §6.4.1) in the string `s`. If it finds one, +-- then `match` returns the captures from the pattern; otherwise it returns nil. If `pattern` +-- specifies no captures, then the whole match is returned. A third, optional numerical argument +-- `init` specifies where to start the search; its default value is 1 and can be negative. function string.match(s, pattern [, init]) end --- --- Returns a binary string containing the values `v1`, `v2`, etc. serialized in --- binary form (packed) according to the format string `fmt` (see §6.4.2). +-- Returns a binary string containing the values `v1`, `v2`, etc. serialized in binary form +-- (packed) according to the format string `fmt` (see §6.4.2). -- -- New in Lua 5.3. function string.pack(fmt, v1, v2, ···) end --- --- Returns the size of a string resulting from `string.pack` with the given --- format. The format string cannot have the variable-length options 's' or 'z' --- (see §6.4.2). +-- Returns the size of a string resulting from `string.pack` with the given format. The format +-- string cannot have the variable-length options 's' or 'z' (see §6.4.2). -- -- New in Lua 5.3. function string.packsize(fmt) end --- --- Returns a string that is the concatenation of `n` copies of the string `s` --- separated by the string `sep`. The default value for `sep` is the empty --- string (that is, no separator). Returns the empty string if `n` is not --- positive. +-- Returns a string that is the concatenation of `n` copies of the string `s` separated by the +-- string `sep`. The default value for `sep` is the empty string (that is, no separator). Returns +-- the empty string if `n` is not positive. -- --- (Note that it is very easy to exhaust the memory of your machine with a --- single call to this function.) +-- (Note that it is very easy to exhaust the memory of your machine with a single call to +-- this function.) function string.rep(s, n [, sep]) end --- @@ -790,31 +716,28 @@ function string.rep(s, n [, sep]) end function string.reverse(s) end --- --- Returns the substring of `s` that starts at `i` and continues until --- `j`; `i` and `j` can be negative. If `j` is absent, then it is assumed to --- be equal to -1 (which is the same as the string length). In particular, --- the call `string.sub(s,1,j)` returns a prefix of `s` with length `j`, and --- `string.sub(s, -i)` returns a suffix of `s` with length `i`. +-- Returns the substring of `s` that starts at `i` and continues until `j`; `i` and `j` can +-- be negative. If `j` is absent, then it is assumed to be equal to -1 (which is the same as +-- the string length). In particular, the call `string.sub(s,1,j)` returns a prefix of `s` +-- with length `j`, and `string.sub(s, -i)` returns a suffix of `s` with length `i`. -- --- If, after the translation of negative indices, `i` is less than 1, it is --- corrected to 1. If `j` is greater than the string length, it is corrected to --- that length. If, after these corrections, `i` is greater than `j`, the --- function returns the empty string. +-- If, after the translation of negative indices, `i` is less than 1, it is corrected to 1. If `j` +-- is greater than the string length, it is corrected to that length. If, after these corrections, +-- `i` is greater than `j`, the function returns the empty string. function string.sub(s, i [, j]) end --- --- Returns the values packed in string `s` (see `string.pack`) according to the --- format string `fmt` (see §6.4.2). An optional `pos` marks where to start --- reading in `s` (default is 1). After the read values, this function also --- returns the index of the first unread byte in `s`. +-- Returns the values packed in string `s` (see `string.pack`) according to the format string +-- `fmt` (see §6.4.2). An optional `pos` marks where to start reading in `s` (default is +-- 1). After the read values, this function also returns the index of the first unread byte in `s`. -- -- New in Lua 5.3. function string.unpack(fmt, s [, pos]) end --- --- Receives a string and returns a copy of this string with all lowercase --- letters changed to uppercase. All other characters are left unchanged. The --- definition of what a lowercase letter is depends on the current locale. +-- Receives a string and returns a copy of this string with all lowercase letters changed to +-- uppercase. All other characters are left unchanged. The definition of what a lowercase letter +-- is depends on the current locale. function string.upper(s) end --- @@ -822,16 +745,14 @@ function string.upper(s) end -- @class table -- @name utf8 -- @field charpattern (string) --- The pattern (a string, not a function) "[\0-\x7F\xC2-\xFD][\x80-\xBF]*" --- (see §6.4.1), which matches exactly one UTF-8 byte sequence, assuming that --- the subject is a valid UTF-8 string. +-- The pattern (a string, not a function) "[\0-\x7F\xC2-\xFD][\x80-\xBF]*" (see §6.4.1), which +-- matches exactly one UTF-8 byte sequence, assuming that the subject is a valid UTF-8 string. -- -- New in Lua 5.3. --- --- Receives zero or more integers, converts each one to its corresponding UTF-8 --- byte sequence and returns a string with the concatenation of all these --- sequences. +-- Receives zero or more integers, converts each one to its corresponding UTF-8 byte sequence +-- and returns a string with the concatenation of all these sequences. -- -- New in Lua 5.3. function utf8.char(···) end @@ -841,58 +762,52 @@ function utf8.char(···) end -- -- for p, c in utf8.codes(s) do *body* end -- --- will iterate over all UTF-8 characters in string `s`, with `p` being the --- position (in bytes) and `c` the code point of each character. It raises an --- error if it meets any invalid byte sequence. +-- will iterate over all UTF-8 characters in string `s`, with `p` being the position (in bytes) and +-- `c` the code point of each character. It raises an error if it meets any invalid byte sequence. -- --- This function only accepts valid sequences (well formed and not overlong). --- By default, it only accepts byte sequences that result in valid Unicode code --- points, rejecting values greater than `10FFFF` and surrogates. The boolean --- argument `lax` lifts these checks, so that all values up to `0x7FFFFFFF` are --- accepted. (Not well formed and overlong sequences are still rejected.) +-- This function only accepts valid sequences (well formed and not overlong). By default, it only +-- accepts byte sequences that result in valid Unicode code points, rejecting values greater than +-- `10FFFF` and surrogates. The boolean argument `lax` lifts these checks, so that all values +-- up to `0x7FFFFFFF` are accepted. (Not well formed and overlong sequences are still rejected.) -- -- New in Lua 5.3. function utf8.codes(s [, lax]) end --- --- Returns the codepoints (as integers) from all characters in `s` that start --- between byte position `i` and `j` (both included). The default for `i` is 1 --- and for `j` is `i`. It raises an error if it meets any invalid byte sequence. +-- Returns the codepoints (as integers) from all characters in `s` that start between byte +-- position `i` and `j` (both included). The default for `i` is 1 and for `j` is `i`. It raises +-- an error if it meets any invalid byte sequence. -- --- This function only accepts valid sequences (well formed and not overlong). --- By default, it only accepts byte sequences that result in valid Unicode code --- points, rejecting values greater than `10FFFF` and surrogates. The boolean --- argument `lax` lifts these checks, so that all values up to `0x7FFFFFFF` are --- accepted. (Not well formed and overlong sequences are still rejected.) +-- This function only accepts valid sequences (well formed and not overlong). By default, it only +-- accepts byte sequences that result in valid Unicode code points, rejecting values greater than +-- `10FFFF` and surrogates. The boolean argument `lax` lifts these checks, so that all values +-- up to `0x7FFFFFFF` are accepted. (Not well formed and overlong sequences are still rejected.) -- -- New in Lua 5.3. function utf8.codepoint(s [, i [, j [, lax]]]) end --- --- Returns the number of UTF-8 characters in string `s` that start between --- positions `i` and `j` (both inclusive). The default for `i` is 1 and for `j` --- is -1. If it finds any invalid byte sequence, returns nil plus the position --- of the first invalid byte. +-- Returns the number of UTF-8 characters in string `s` that start between positions `i` and `j` +-- (both inclusive). The default for `i` is 1 and for `j` is -1. If it finds any invalid byte +-- sequence, returns nil plus the position of the first invalid byte. -- --- This function only accepts valid sequences (well formed and not overlong). --- By default, it only accepts byte sequences that result in valid Unicode code --- points, rejecting values greater than `10FFFF` and surrogates. The boolean --- argument `lax` lifts these checks, so that all values up to `0x7FFFFFFF` are --- accepted. (Not well formed and overlong sequences are still rejected.) +-- This function only accepts valid sequences (well formed and not overlong). By default, it only +-- accepts byte sequences that result in valid Unicode code points, rejecting values greater than +-- `10FFFF` and surrogates. The boolean argument `lax` lifts these checks, so that all values +-- up to `0x7FFFFFFF` are accepted. (Not well formed and overlong sequences are still rejected.) -- -- New in Lua 5.3. function utf8.len(s [, i [, j [, lax]]]) end --- --- Returns the position (in bytes) where the encoding of the `n`-th character of --- `s` (counting from position `i`) starts. A negative `n` gets characters --- before position `i`. The default for `i` is 1 when `n` is non-negative and --- `#s + 1` otherwise, so that `utf8.offset(s, -n)` gets the offset of the --- `n`-th character from the end of the string. If the specified character is --- neither in the subject nor right after its end, the function returns nil. +-- Returns the position (in bytes) where the encoding of the `n`-th character of `s` (counting +-- from position `i`) starts. A negative `n` gets characters before position `i`. The default +-- for `i` is 1 when `n` is non-negative and `#s + 1` otherwise, so that `utf8.offset(s, -n)` +-- gets the offset of the `n`-th character from the end of the string. If the specified character +-- is neither in the subject nor right after its end, the function returns nil. -- --- As a special case, when `n` is 0 the function returns the start of the --- encoding of the character that contains the `i`-th byte of `s`. +-- As a special case, when `n` is 0 the function returns the start of the encoding of the +-- character that contains the `i`-th byte of `s`. -- -- This function assumes that `s` is a valid UTF-8 string. -- @@ -901,31 +816,29 @@ function utf8.offset(s, n [, i]) end --- -- Given a list where all elements are strings or numbers, returns the string --- `list[i]..sep..list[i+1] ··· sep..list[j]`. The default value for `sep` is --- the empty string, the default for `i` is 1, and the default for `j` is --- `#list`. If `i` is greater than `j`, returns the empty string. +-- `list[i]..sep..list[i+1] ··· sep..list[j]`. The default value for `sep` is the empty +-- string, the default for `i` is 1, and the default for `j` is `#list`. If `i` is greater than +-- `j`, returns the empty string. function table.concat(list [, sep [, i [, j]]]) end --- --- Inserts element `value` at position `pos` in `list`, shifting up the elements --- `list[pos], list[pos+1], ···, list[#list]`. The default value for `pos` is --- `#list+1`, so that a call `table.insert(t,x)` inserts `x` at the end of the --- list `t`. +-- Inserts element `value` at position `pos` in `list`, shifting up the elements `list[pos], +-- list[pos+1], ···, list[#list]`. The default value for `pos` is `#list+1`, so that a call +-- `table.insert(t,x)` inserts `x` at the end of the list `t`. function table.insert(list, [pos,] value) end --- --- Returns the largest positive numerical index of the given table, or zero if --- the table has no positive numerical indices. (To do its job this function --- does a linear traversal of the whole table.) +-- Returns the largest positive numerical index of the given table, or zero if the table has +-- no positive numerical indices. (To do its job this function does a linear traversal of the +-- whole table.) -- -- Deprecated in Lua 5.2. function table.maxn(table) end --- --- Moves elements from the table `a1` to the table `a2`, performing the --- equivalent to the following multiple assignment: `a2[t], ··· = a1[f], ···, --- a1[e]`. The default for `a2` is `a1`. The destination range can overlap with --- the source range. Index `f` must be positive. +-- Moves elements from the table `a1` to the table `a2`, performing the equivalent to the +-- following multiple assignment: `a2[t], ··· = a1[f], ···, a1[e]`. The default for `a2` +-- is `a1`. The destination range can overlap with the source range. Index `f` must be positive. -- -- Returns the destination table `a2`. -- @@ -933,39 +846,35 @@ function table.maxn(table) end function table.move(a1, f, e, t [,a2]) end --- --- Returns a new table with all parameters stored into keys 1, 2, etc. and with --- a field "`n`" with the total number of parameters. Note that the resulting --- table may not be a sequence, if some arguments are nil. +-- Returns a new table with all parameters stored into keys 1, 2, etc. and with a field "`n`" +-- with the total number of parameters. Note that the resulting table may not be a sequence, +-- if some arguments are nil. -- -- New in Lua 5.2. function table.pack(···) end --- --- Removes from `list` the element at position `pos`, returning the value of the --- removed element. When `pos` is an integer between 1 and `#list`, it shifts --- down the elements `list[pos+1], list[pos+2], ···, list[#list]` and erases --- element `list[#list]`; The index `pos` can also be 0 when `#list` is 0, or --- `#list + 1`. +-- Removes from `list` the element at position `pos`, returning the value of the removed +-- element. When `pos` is an integer between 1 and `#list`, it shifts down the elements +-- `list[pos+1], list[pos+2], ···, list[#list]` and erases element `list[#list]`; The index +-- `pos` can also be 0 when `#list` is 0, or `#list + 1`. -- --- The default value for `pos` is `#list`, so that a call `table.remove(l)` --- removes the last element of the list `l`. +-- The default value for `pos` is `#list`, so that a call `table.remove(l)` removes the last +-- element of the list `l`. function table.remove(list [, pos]) end --- --- Sorts the list elements in a given order, *in-place*, from `list[1]` to --- `list[#list]`. If `comp` is given, then it must be a function that receives --- two list elements and returns true when the first element must come before --- the second in the final order (so that, after the sort, `i < j` implies --- `not comp(list[j],list[i])` will be true after the sort). If `comp` is not --- given, then the standard Lua operator `<` is used instead. +-- Sorts the list elements in a given order, *in-place*, from `list[1]` to `list[#list]`. If +-- `comp` is given, then it must be a function that receives two list elements and returns true +-- when the first element must come before the second in the final order (so that, after the +-- sort, `i < j` implies `not comp(list[j],list[i])` will be true after the sort). If `comp` +-- is not given, then the standard Lua operator `<` is used instead. -- --- Note that the `comp` function must not define a string partial order over the --- elements in the list; that is, it must be asymmetric and transitive. --- Otherwise, no valid sort may be possible. +-- Note that the `comp` function must not define a string partial order over the elements in the +-- list; that is, it must be asymmetric and transitive. Otherwise, no valid sort may be possible. -- --- The sort algorithm is not stable; that is, elements not comparable by the --- given order (e.g., equal elements) may have their relative positions changed --- by the sort. +-- The sort algorithm is not stable; that is, elements not comparable by the given order (e.g., +-- equal elements) may have their relative positions changed by the sort. function table.sort(list [, comp]) end --- @@ -1009,18 +918,15 @@ function math.acos(x) end function math.asin(x) end --- --- Returns the arc tangent of `y/x` (in radians), but uses the signs --- of both parameters to find the quadrant of the result. It also handles --- correctly the case of `x` being zero. +-- Returns the arc tangent of `y/x` (in radians), but uses the signs of both parameters to find +-- the quadrant of the result. It also handles correctly the case of `x` being zero. -- --- The default value for `x` is 1, so that the call `math.atan(y)` returns the --- arc tangent of `y`. +-- The default value for `x` is 1, so that the call `math.atan(y)` returns the arc tangent of `y`. function math.atan(y [, x]) end --- --- Returns the arc tangent of `y/x` (in radians), but uses the signs --- of both parameters to find the quadrant of the result. (It also handles --- correctly the case of `x` being zero.) +-- Returns the arc tangent of `y/x` (in radians), but uses the signs of both parameters to find +-- the quadrant of the result. (It also handles correctly the case of `x` being zero.) -- -- Deprecated in Lua 5.3. function math.atan2(y, x) end @@ -1052,13 +958,13 @@ function math.exp(x) end function math.floor(x) end --- --- Returns the remainder of the division of `x` by `y` that rounds the --- quotient towards zero. (integer/float) +-- Returns the remainder of the division of `x` by `y` that rounds the quotient towards +-- zero. (integer/float) function math.fmod(x, y) end --- --- Returns `m` and `e` such that 'x = m2^e', `e` is an integer and the --- absolute value of `m` is in the range *[0.5, 1)* (or zero when `x` is zero). +-- Returns `m` and `e` such that 'x = m2^e', `e` is an integer and the absolute value of `m` +-- is in the range *[0.5, 1)* (or zero when `x` is zero). -- -- Deprecated in Lua 5.3. function math.frexp(x) end @@ -1070,8 +976,8 @@ function math.frexp(x) end function math.ldexp(m, e) end --- --- Returns the logarithm of `x` in the given base. The default for `base` is 'e' --- (so that the function returns the natural logarithm of `x`). +-- Returns the logarithm of `x` in the given base. The default for `base` is 'e' (so that the +-- function returns the natural logarithm of `x`). function math.log(x [, base]) end --- @@ -1081,23 +987,20 @@ function math.log(x [, base]) end function math.log10(x) end --- --- Returns the argument with the maximum value, according to the Lua operator --- `<`. +-- Returns the argument with the maximum value, according to the Lua operator `<`. function math.max(x, ···) end --- --- Returns the argument with the minimum value, according to the Lua operator --- `<`. +-- Returns the argument with the minimum value, according to the Lua operator `<`. function math.min(x, ···) end --- --- Returns the integral part of `x` and the fractional part of `x`. Its second --- result is always a float. +-- Returns the integral part of `x` and the fractional part of `x`. Its second result is always +-- a float. function math.modf(x) end --- --- Returns *x^y*. (You can also use the expression `x^y` to compute this --- value.) +-- Returns *x^y*. (You can also use the expression `x^y` to compute this value.) -- -- Deprecated in Lua 5.3. function math.pow(x, y) end @@ -1107,37 +1010,34 @@ function math.pow(x, y) end function math.rad(x) end --- --- When called without arguments, returns a pseudo-random float with uniform --- distribution in the range [0,1). When called with two integers `m` and `n`, --- `math.random` returns a pseudo-random integer with uniform distribution in --- the range `[m, n]. The call `math.random(n)`, for a positive `n`, is --- equivalent to `math.random(1,n)`. The call `math.random(0)` produces an +-- When called without arguments, returns a pseudo-random float with uniform distribution in the +-- range [0,1). When called with two integers `m` and `n`, `math.random` returns a pseudo-random +-- integer with uniform distribution in the range `[m, n]. The call `math.random(n)`, for a +-- positive `n`, is equivalent to `math.random(1,n)`. The call `math.random(0)` produces an -- integer with all bits (pseudo)random. -- --- This function uses the `xoshiro256**` algorithm to produce pseudo-random --- 64-bit integers, which are the results of calls with argument 0. Other --- results (ranges and floats) are unbiased extracted from these integers. +-- This function uses the `xoshiro256**` algorithm to produce pseudo-random 64-bit integers, +-- which are the results of calls with argument 0. Other results (ranges and floats) are unbiased +-- extracted from these integers. -- --- Lua initializes its pseudo-random generator with the equivalent of a call to --- `math.randomseed` with no arguments, so that `math.random` should generate --- different sequences of results each time the program runs. +-- Lua initializes its pseudo-random generator with the equivalent of a call to `math.randomseed` +-- with no arguments, so that `math.random` should generate different sequences of results each +-- time the program runs. function math.random([m [, n]]) end --- --- When called with at least one argument, the integer parameters `x` and `y` --- are joined into a 128-bit *seed* that is used to reinitialize the --- pseudo-random generator; equal seeds produce equal sequences of numbers. The --- default for `y` is zero. +-- When called with at least one argument, the integer parameters `x` and `y` are joined into a +-- 128-bit *seed* that is used to reinitialize the pseudo-random generator; equal seeds produce +-- equal sequences of numbers. The default for `y` is zero. -- --- When called with no arguments, Lua generates a seed with a weak attempt for --- randomness. +-- When called with no arguments, Lua generates a seed with a weak attempt for randomness. -- --- This function returns the two seed components that were effectively used, so --- that setting them again repeats the sequence. +-- This function returns the two seed components that were effectively used, so that setting +-- them again repeats the sequence. -- --- To ensure a required level of randomness to the initial state (or contrarily, --- to have a deterministic sequence, for instance when debugging a program), you --- should call `math.randomseed` with explicit arguments. +-- To ensure a required level of randomness to the initial state (or contrarily, to have +-- a deterministic sequence, for instance when debugging a program), you should call +-- `math.randomseed` with explicit arguments. function math.randomseed([x [, y]]) end --- @@ -1151,8 +1051,7 @@ function math.sin(x) end function math.sinh(x) end --- --- Returns the square root of `x`. (You can also use the expression `x^0.5` --- to compute this value.) +-- Returns the square root of `x`. (You can also use the expression `x^0.5` to compute this value.) function math.sqrt(x) end --- @@ -1166,101 +1065,88 @@ function math.tan(x) end function math.tanh(x) end --- --- If the value `x` is convertible to an integer, returns that integer. --- Otherwise, returns nil. +-- If the value `x` is convertible to an integer, returns that integer. Otherwise, returns nil. -- -- New in Lua 5.3. function math.tointeger(x) end --- --- Returns "integer" if `x` is an integer, "float" if it is a float, or nil if --- x is not a number. +-- Returns "integer" if `x` is an integer, "float" if it is a float, or nil if x is not a number. -- -- New in Lua 5.3. function math.type(x) end --- --- Returns a boolean, true if integer `m` is below integer `n` when they are --- compared as unsigned integers. +-- Returns a boolean, true if integer `m` is below integer `n` when they are compared as +-- unsigned integers. -- -- New in Lua 5.3. function math.ult(m, n) end --- --- Returns the number `x` shifted `disp` bits to the right. The number `disp` --- may be any representable integer. Negative displacements shift to the left. +-- Returns the number `x` shifted `disp` bits to the right. The number `disp` may be any +-- representable integer. Negative displacements shift to the left. -- --- This shift operation is what is called arithmetic shift. Vacant bits on the --- left are filled with copies of the higher bit of `x`; vacant bits on the --- right are filled with zeros. In particular, displacements with absolute --- values higher than 31 result in zero or `0xFFFFFFFF` (all original bits are --- shifted out). +-- This shift operation is what is called arithmetic shift. Vacant bits on the left are filled +-- with copies of the higher bit of `x`; vacant bits on the right are filled with zeros. In +-- particular, displacements with absolute values higher than 31 result in zero or `0xFFFFFFFF` +-- (all original bits are shifted out). -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.arshift(x, disp) end --- -- Returns the bitwise "and" of its operands. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.band(...) end --- --- Returns the bitwise negation of `x`. For any integer `x`, the following --- identity holds: +-- Returns the bitwise negation of `x`. For any integer `x`, the following identity holds: -- -- assert(bit32.bnot(x) == (-1 - x) % 2^32) -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.bnot(x) end --- -- Returns the bitwise "or" of its operands. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.bor(...) end --- --- Returns a boolean signaling whether the bitwise "and" of its operands is --- different from zero. +-- Returns a boolean signaling whether the bitwise "and" of its operands is different from zero. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.btest(...) end --- -- Returns the bitwise "exclusive or" of its operands. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.xor(...) end --- --- Returns the unsigned number formed by the bits `field` to `field + width - 1` --- from `n`. Bits are numbered from 0 (least significant) to 31 (most --- significant). All accessed bits must be in the range [0, 31]. +-- Returns the unsigned number formed by the bits `field` to `field + width - 1` from `n`. Bits +-- are numbered from 0 (least significant) to 31 (most significant). All accessed bits must be +-- in the range [0, 31]. -- -- The default for `width` is 1. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.extract(n, field [, width]) end --- --- Returns a copy of `n` with the bits `field` to `field + width - 1` replaced --- by the value `v`. See `bit32.extract` for details about `field` and `width`. +-- Returns a copy of `n` with the bits `field` to `field + width - 1` replaced by the value +-- `v`. See `bit32.extract` for details about `field` and `width`. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.replace(n, v, field [, width]) end --- --- Returns the number `x` rotated `disp` bits to the left. The number `disp` may --- be any representable integer. +-- Returns the number `x` rotated `disp` bits to the left. The number `disp` may be any +-- representable integer. -- -- For any valid displacement, the following identity holds: -- @@ -1268,28 +1154,25 @@ function bit32.replace(n, v, field [, width]) end -- -- In particular, negative displacements rotate to the right. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.lrotate(x, disp) end --- --- Returns the number `x` shifted `disp` bits to the left. The number `disp` may --- be any representable integer. Negative displacements shift to the right. In --- any direction, vacant bits are filled with zeros. In particular, --- displacements with absolute values higher than 31 result in zero (all bits --- are shifted out). +-- Returns the number `x` shifted `disp` bits to the left. The number `disp` may be any +-- representable integer. Negative displacements shift to the right. In any direction, vacant +-- bits are filled with zeros. In particular, displacements with absolute values higher than +-- 31 result in zero (all bits are shifted out). -- -- For positive displacements, the following equality holds: -- -- assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32) -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.lshift(x, disp) end --- --- Returns the number `x` rotated `disp` bits to the right. The number `disp` --- may be any representable integer. +-- Returns the number `x` rotated `disp` bits to the right. The number `disp` may be any +-- representable integer. -- -- For any valid displacement, the following identity holds: -- @@ -1297,16 +1180,14 @@ function bit32.lshift(x, disp) end -- -- In particular, negative displacements rotate to the left. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.rrotate(x, disp) end --- --- Returns the number `x` shifted `disp` bits to the right. The number `disp` --- may be any representable integer. Negative displacements shift to the left. --- In any direction, vacant bits are filled with zeros. In particular, --- displacements with absolute values higher than 31 result in zero (all bits --- are shifted out). +-- Returns the number `x` shifted `disp` bits to the right. The number `disp` may be any +-- representable integer. Negative displacements shift to the left. In any direction, vacant +-- bits are filled with zeros. In particular, displacements with absolute values higher than +-- 31 result in zero (all bits are shifted out). -- -- For positive displacements, the following equality holds: -- @@ -1314,8 +1195,7 @@ function bit32.rrotate(x, disp) end -- -- This shift operation is what is called logical shift. -- --- New in Lua 5.2. --- Deprecated in Lua 5.3. +-- New in Lua 5.2. Deprecated in Lua 5.3. function bit32.rshift(x, disp) end --- @@ -1331,8 +1211,7 @@ function bit32.rshift(x, disp) end local io --- --- Equivalent to `file:close()`. Without a `file`, closes the default --- output file. +-- Equivalent to `file:close()`. Without a `file`, closes the default output file. function io.close([file]) end --- @@ -1340,47 +1219,44 @@ function io.close([file]) end function io.flush() end --- --- When called with a file name, it opens the named file (in text mode), --- and sets its handle as the default input file. When called with a file --- handle, it simply sets this file handle as the default input file. When --- called without parameters, it returns the current default input file. +-- When called with a file name, it opens the named file (in text mode), and sets its handle as +-- the default input file. When called with a file handle, it simply sets this file handle as the +-- default input file. When called without parameters, it returns the current default input file. -- --- In case of errors this function raises the error, instead of returning an --- error code. +-- In case of errors this function raises the error, instead of returning an error code. function io.input([file]) end --- --- Opens the given file name in read mode and returns an iterator function that --- works like `file:lines(···)` over the opened file. When the iterator function --- fails to read any value, it automatically closes the file. Besides the --- iterator function, `io.lines` returns three other values: two nil values as --- placeholders, plus the created file handle. Therefore, when used in a generic --- for loop, the file is closed also if the loop is interrupted by an error or a --- `break`. +-- Opens the given file name in read mode and returns an iterator function that works like +-- `file:lines(···)` over the opened file. When the iterator function fails to read any value, +-- it automatically closes the file. Besides the iterator function, `io.lines` returns three other +-- values: two nil values as placeholders, plus the created file handle. Therefore, when used in +-- a generic for loop, the file is closed also if the loop is interrupted by an error or a `break`. -- --- The call `io.lines()` (with no file name) is equivalent to --- `io.input():lines("l")`; that is, it iterates over the lines of the default --- input file. In this case it does not close the file when the loop ends. +-- The call `io.lines()` (with no file name) is equivalent to `io.input():lines("l")`; that is, +-- it iterates over the lines of the default input file. In this case it does not close the +-- file when the loop ends. -- --- In case of errors opening the file, this function raises the error, instead --- of returning an error code. +-- In case of errors opening the file, this function raises the error, instead of returning an +-- error code. function io.lines([filename, ···]) end --- --- This function opens a file, in the mode specified in the string `mode`. It --- returns a new file handle, or, in case of errors, nil plus an error message. +-- This function opens a file, in the mode specified in the string `mode`. It returns a new +-- file handle, or, in case of errors, nil plus an error message. -- -- The `mode` string can be any of the following: --- "r": read mode (the default); --- "w": write mode; --- "a": append mode; --- "r+": update mode, all previous data is preserved; --- "w+": update mode, all previous data is erased; --- "a+": append update mode, previous data is preserved, writing is only --- allowed at the end of file. --- --- The `mode` string can also have a '`b`' at the end, which is needed in --- some systems to open the file in binary mode. +-- +-- * "r": read mode (the default); +-- * "w": write mode; +-- * "a": append mode; +-- * "r+": update mode, all previous data is preserved; +-- * "w+": update mode, all previous data is erased; +-- * "a+": append update mode, previous data is preserved, writing is only allowed at the +-- end of file. +-- +-- The `mode` string can also have a '`b`' at the end, which is needed in some systems to open +-- the file in binary mode. function io.open(filename [, mode]) end --- @@ -1388,9 +1264,9 @@ function io.open(filename [, mode]) end function io.output([file]) end --- --- Starts the program `prog` in a separated process and returns a file handle --- that you can use to read data from this program (if `mode` is `"r"`, --- the default) or to write data to this program (if `mode` is `"w"`). +-- Starts the program `prog` in a separated process and returns a file handle that you can use +-- to read data from this program (if `mode` is `"r"`, the default) or to write data to this +-- program (if `mode` is `"w"`). -- -- This function is system dependent and is not available on all platforms. function io.popen(prog [, mode]) end @@ -1400,14 +1276,14 @@ function io.popen(prog [, mode]) end function io.read(···) end --- --- In case of success, returns a handle for a temporary file. This file is --- opened in update mode and it is automatically removed when the program ends. +-- In case of success, returns a handle for a temporary file. This file is opened in update +-- mode and it is automatically removed when the program ends. function io.tmpfile() end --- --- Checks whether `obj` is a valid file handle. Returns the string `"file"` --- if `obj` is an open file handle, `"closed file"` if `obj` is a closed file --- handle, or nil if `obj` is not a file handle. +-- Checks whether `obj` is a valid file handle. Returns the string `"file"` if `obj` is an +-- open file handle, `"closed file"` if `obj` is a closed file handle, or nil if `obj` is not +-- a file handle. function io.type(obj) end --- @@ -1415,12 +1291,11 @@ function io.type(obj) end function io.write(···) end --- --- Closes `file`. Note that files are automatically closed when their --- handles are garbage collected, but that takes an unpredictable amount of --- time to happen. +-- Closes `file`. Note that files are automatically closed when their handles are garbage +-- collected, but that takes an unpredictable amount of time to happen. -- --- When closing a file handle created with `io.popen`, `file:close` returns the --- same values returned by `os.execute`. +-- When closing a file handle created with `io.popen`, `file:close` returns the same values +-- returned by `os.execute`. function file:close() end --- @@ -1428,228 +1303,210 @@ function file:close() end function file:flush() end --- --- Returns an iterator function that, each time it is called, reads the file --- according to the given formats. When no format is given, uses "l" as a --- default. As an example, the construction +-- Returns an iterator function that, each time it is called, reads the file according to the +-- given formats. When no format is given, uses "l" as a default. As an example, the construction -- -- for c in file:lines(1) do *body* end -- --- will iterate over all characters of the file, starting at the current --- position. Unlike `io.lines`, this function does not close the file when the --- loop ends. +-- will iterate over all characters of the file, starting at the current position. Unlike +-- `io.lines`, this function does not close the file when the loop ends. function file:lines(···) end --- --- Reads the file `file`, according to the given formats, which specify --- what to read. For each format, the function returns a string or a number --- with the characters read, or nil if it cannot read data with the specified --- format. (In this latter case, the function does not read subsequent formats.) --- When called without arguments, it uses a default format that reads the next --- line (see below). +-- Reads the file `file`, according to the given formats, which specify what to read. For each +-- format, the function returns a string or a number with the characters read, or nil if it +-- cannot read data with the specified format. (In this latter case, the function does not read +-- subsequent formats.) When called without arguments, it uses a default format that reads +-- the next line (see below). -- -- The available formats are --- "n": reads a numeral and returns it as a float or an integer, following the --- lexical conventions of Lua. (The numeral may have leading whitespaces --- and a sign.) This format always reads the longest input sequence that --- is a valid prefix for a number; if that prefix does not form a valid --- number (e.g., an empty string, "0x", or "3.4e-") or it is too long --- (more than 200 characters), it is discarded and the format returns --- nil. --- "a": reads the whole file, starting at the current position. On end of --- file, it returns the empty string; this format never fails. --- "l": reads the next line skipping the end of line, returning nil on --- end of file. This is the default format. --- "L": reads the next line keeping the end-of-line character (if present), --- returning nil on end of file. --- *number*: reads a string with up to this number of bytes, returning nil on --- end of file. If *number* is zero, it reads nothing and returns an --- empty string, or nil on end of file. +-- +-- * "n": reads a numeral and returns it as a float or an integer, following the lexical +-- conventions of Lua. (The numeral may have leading whitespaces and a sign.) This format +-- always reads the longest input sequence that is a valid prefix for a number; if that +-- prefix does not form a valid number (e.g., an empty string, "0x", or "3.4e-") or it is +-- too long (more than 200 characters), it is discarded and the format returns nil. +-- * "a": reads the whole file, starting at the current position. On end of file, it returns +-- the empty string; this format never fails. +-- * "l": reads the next line skipping the end of line, returning nil on end of file. This +-- is the default format. +-- * "L": reads the next line keeping the end-of-line character (if present), returning nil +-- on end of file. +-- * *number*: reads a string with up to this number of bytes, returning nil on end of file. If +-- *number* is zero, it reads nothing and returns an empty string, or nil on end of file. -- -- The formats "l" and "L" should be used only for text files. function file:read(···) end --- --- Sets and gets the file position, measured from the beginning of the --- file, to the position given by `offset` plus a base specified by the string --- `whence`, as follows: --- "set": base is position 0 (beginning of the file); --- "cur": base is current position; --- "end": base is end of file; +-- Sets and gets the file position, measured from the beginning of the file, to the position +-- given by `offset` plus a base specified by the string `whence`, as follows: -- --- In case of success, function `seek` returns the final file position, --- measured in bytes from the beginning of the file. If `seek` fails, it returns --- nil, plus a string describing the error. +-- * "set": base is position 0 (beginning of the file); +-- * "cur": base is current position; +-- * "end": base is end of file; -- --- The default value for `whence` is `"cur"`, and for `offset` is 0. Therefore, --- the call `file:seek()` returns the current file position, without changing --- it; the call `file:seek("set")` sets the position to the beginning of the --- file (and returns 0); and the call `file:seek("end")` sets the position --- to the end of the file, and returns its size. +-- In case of success, function `seek` returns the final file position, measured in bytes from +-- the beginning of the file. If `seek` fails, it returns nil, plus a string describing the error. +-- +-- The default value for `whence` is `"cur"`, and for `offset` is 0. Therefore, the +-- call `file:seek()` returns the current file position, without changing it; the call +-- `file:seek("set")` sets the position to the beginning of the file (and returns 0); and the +-- call `file:seek("end")` sets the position to the end of the file, and returns its size. function file:seek([whence [, offset]]) end --- -- Sets the buffering mode for a file. There are three available modes: --- "no": no buffering --- "full": full buffering --- "line": line buffering -- --- For the last two cases, `size` is a hint for the size of the buffer, in --- bytes. The default is an appropriate size. +-- * "no": no buffering +-- * "full": full buffering +-- * "line": line buffering +-- +-- For the last two cases, `size` is a hint for the size of the buffer, in bytes. The default +-- is an appropriate size. -- --- The specific behavior of each mode is non portable; check the underlying --- ISO C function `setvbuf` in your platform for more details. +-- The specific behavior of each mode is non portable; check the underlying ISO C function +-- `setvbuf` in your platform for more details. function file:setvbuf(mode [, size]) end --- --- Writes the value of each of its arguments to `file`. The arguments must be --- strings or numbers. +-- Writes the value of each of its arguments to `file`. The arguments must be strings or numbers. -- --- In case of success, this function returns `file`. Otherwise it returns nil --- plus a string describing the error. +-- In case of success, this function returns `file`. Otherwise it returns nil plus a string +-- describing the error. function file:write(···) end --- --- Returns an approximation of the amount in seconds of CPU time used by --- the program, as returned by the underlying ISO C function `clock`. +-- Returns an approximation of the amount in seconds of CPU time used by the program, as returned +-- by the underlying ISO C function `clock`. function os.clock() end --- --- Returns a string or a table containing date and time, formatted according --- to the given string `format`. +-- Returns a string or a table containing date and time, formatted according to the given string +-- `format`. -- --- If the `time` argument is present, this is the time to be formatted --- (see the `os.time` function for a description of this value). Otherwise, --- `date` formats the current time. +-- If the `time` argument is present, this is the time to be formatted (see the `os.time` +-- function for a description of this value). Otherwise, `date` formats the current time. -- --- If `format` starts with '`!`', then the date is formatted in Coordinated --- Universal Time. After this optional character, if `format` is the string --- "`*t`", then `date` returns a table with the following fields: `year`, --- `month` (1-12), `day` (1-31), `hour` (0-23), `min` (0-59), `sec` (0-61, due --- to leap seconds), `wday` (weekday, 1-7, Sunday is 1), `yday` (day of the --- year, 1-366), and `isdst` (daylight saving flag, a boolean). This last field --- may be absent if the information is not available. +-- If `format` starts with '`!`', then the date is formatted in Coordinated Universal Time. After +-- this optional character, if `format` is the string "`*t`", then `date` returns a table with +-- the following fields: `year`, `month` (1-12), `day` (1-31), `hour` (0-23), `min` (0-59), +-- `sec` (0-61, due to leap seconds), `wday` (weekday, 1-7, Sunday is 1), `yday` (day of the +-- year, 1-366), and `isdst` (daylight saving flag, a boolean). This last field may be absent +-- if the information is not available. -- --- If `format` is not "`*t`", then `date` returns the date as a string, --- formatted according to the same rules as the ISO C function `strftime`. +-- If `format` is not "`*t`", then `date` returns the date as a string, formatted according to +-- the same rules as the ISO C function `strftime`. -- --- If `format` is absent, it defaults to "`%c`", which gives a human-readable --- date and time representation using the current locale. +-- If `format` is absent, it defaults to "`%c`", which gives a human-readable date and time +-- representation using the current locale. -- --- On non-POSIX systems, this function may be not thread safe because of its --- reliance on C function `gmtime` and C function `localtime`. +-- On non-POSIX systems, this function may be not thread safe because of its reliance on C +-- function `gmtime` and C function `localtime`. function os.date([format [, time]]) end --- --- Returns the difference, in seconds, from time `t1` to time `t2` (where the --- times are values returned by `os.time`). In POSIX, Windows, and some other --- systems, this value is exactly `t2`*-*`t1`. +-- Returns the difference, in seconds, from time `t1` to time `t2` (where the times are values +-- returned by `os.time`). In POSIX, Windows, and some other systems, this value is exactly +-- `t2`*-*`t1`. function os.difftime(t2, t1) end --- --- This function is equivalent to the ISO C function `system`. It passes --- `command` to be executed by an operating system shell. Its first result is --- `true` if the command terminated successfully, or `nil` otherwise. After this --- first result the function returns a string plus a number, as follows: --- "exit": the command terminated normally; the following number is the exit --- status of the command. --- "signal": the command was terminated by a signal; the following number is --- the signal that terminated the command. +-- This function is equivalent to the ISO C function `system`. It passes `command` to be +-- executed by an operating system shell. Its first result is `true` if the command terminated +-- successfully, or `nil` otherwise. After this first result the function returns a string plus +-- a number, as follows: -- --- When called without a `command`, `os.execute` returns a boolean that is true --- if a shell is available. +-- * "exit": the command terminated normally; the following number is the exit status of +-- the command. +-- * "signal": the command was terminated by a signal; the following number is the signal +-- that terminated the command. +-- +-- When called without a `command`, `os.execute` returns a boolean that is true if a shell +-- is available. function os.execute([command]) end --- --- Calls the ISO C function `exit` to terminate the host program. If `code` is --- `true`, the returned status is `EXIT_SUCCESS`; if `code` is `false`, the --- returned status is `EXIT_FAILURE`; if `code` is a number, the returned status --- is this number. The default value for `code` is `true`. +-- Calls the ISO C function `exit` to terminate the host program. If `code` is `true`, the returned +-- status is `EXIT_SUCCESS`; if `code` is `false`, the returned status is `EXIT_FAILURE`; if +-- `code` is a number, the returned status is this number. The default value for `code` is `true`. -- --- If the optional second argument `close` is true, closes the Lua state before --- exiting. +-- If the optional second argument `close` is true, closes the Lua state before exiting. function os.exit([code [, close]]) end --- --- Returns the value of the process environment variable `varname`, or --- nil if the variable is not defined. +-- Returns the value of the process environment variable `varname`, or nil if the variable is +-- not defined. function os.getenv(varname) end --- --- Deletes the file (or empty directory, on POSIX systems) with the given name. --- If this function fails, it returns nil, plus a string describing the error --- and the error code. +-- Deletes the file (or empty directory, on POSIX systems) with the given name. If this function +-- fails, it returns nil, plus a string describing the error and the error code. function os.remove(filename) end --- --- Renames file or directory named `oldname` to `newname`. If this function --- fails, it returns nil, plus a string describing the error and the error code. +-- Renames file or directory named `oldname` to `newname`. If this function fails, it returns +-- nil, plus a string describing the error and the error code. function os.rename(oldname, newname) end --- --- Sets the current locale of the program. `locale` is a system-dependent string --- specifying a locale; `category` is an optional string describing which --- category to change: `"all"`, `"collate"`, `"ctype"`, `"monetary"`, --- `"numeric"`, or `"time"`; the default category is `"all"`. The function --- returns the name of the new locale, or nil if the request cannot be honored. +-- Sets the current locale of the program. `locale` is a system-dependent string specifying +-- a locale; `category` is an optional string describing which category to change: `"all"`, +-- `"collate"`, `"ctype"`, `"monetary"`, `"numeric"`, or `"time"`; the default category is +-- `"all"`. The function returns the name of the new locale, or nil if the request cannot +-- be honored. -- --- If `locale` is the empty string, the current locale is set to an --- implementation-defined native locale. If `locale` is the string "`C`", --- the current locale is set to the standard C locale. +-- If `locale` is the empty string, the current locale is set to an implementation-defined native +-- locale. If `locale` is the string "`C`", the current locale is set to the standard C locale. -- --- When called with nil as the first argument, this function only returns --- the name of the current locale for the given category. +-- When called with nil as the first argument, this function only returns the name of the +-- current locale for the given category. -- --- This function may not be thread safe because of its reliance on C function --- `setlocale`. +-- This function may not be thread safe because of its reliance on C function `setlocale`. function os.setlocale(locale [, category]) end --- --- Returns the current time when called without arguments, or a time --- representing the date and time specified by the given table. This table --- must have fields `year`, `month`, and `day`, and may have fields `hour` --- (default is 12), `min` (default is 0), `sec` (default is 0), and `isdst` --- (default is nil). For a description of these fields, see the `os.date` --- function. +-- Returns the current time when called without arguments, or a time representing the date and +-- time specified by the given table. This table must have fields `year`, `month`, and `day`, +-- and may have fields `hour` (default is 12), `min` (default is 0), `sec` (default is 0), and +-- `isdst` (default is nil). For a description of these fields, see the `os.date` function. -- --- When the function is called, the values in these fields do not need to be --- inside their valid ranges. For instance, if `sec` is -10, it means 10 seconds --- before the time specified by the other fields; if `hour` is 1000, it means --- 1000 hours after the time specified by the other fields. +-- When the function is called, the values in these fields do not need to be inside their +-- valid ranges. For instance, if `sec` is -10, it means 10 seconds before the time specified +-- by the other fields; if `hour` is 1000, it means 1000 hours after the time specified by the +-- other fields. -- --- The returned value is a number, whose meaning depends on your system. In --- POSIX, Windows, and some other systems, this number counts the number of --- seconds since some given start time (the "epoch"). In other systems, the --- meaning is not specified, and the number returned by `time` can be used only --- as an argument to `os.date` and `os.difftime`. +-- The returned value is a number, whose meaning depends on your system. In POSIX, Windows, +-- and some other systems, this number counts the number of seconds since some given start time +-- (the "epoch"). In other systems, the meaning is not specified, and the number returned by +-- `time` can be used only as an argument to `os.date` and `os.difftime`. -- --- When called with a table, `os.time` also normalizes all the fields documented --- in the `os.date` function, so that they represent the same time as before the --- call but with values inside their valid ranges. +-- When called with a table, `os.time` also normalizes all the fields documented in the `os.date` +-- function, so that they represent the same time as before the call but with values inside +-- their valid ranges. function os.time([table]) end --- --- Returns a string with a file name that can be used for a temporary --- file. The file must be explicitly opened before its use and explicitly --- removed when no longer needed. +-- Returns a string with a file name that can be used for a temporary file. The file must be +-- explicitly opened before its use and explicitly removed when no longer needed. -- --- On POSIX systems, this function also creates a file with that name, to avoid --- security risks. (Someone else might create the file with wrong permissions in --- the time between getting the name and creating the file.) You still have to --- open the file to use it and to remove it (even if you do not use it). +-- On POSIX systems, this function also creates a file with that name, to avoid security +-- risks. (Someone else might create the file with wrong permissions in the time between getting +-- the name and creating the file.) You still have to open the file to use it and to remove it +-- (even if you do not use it). -- --- When possible, you may prefer to use `io.tmpfile`, which automatically --- removes the file when the program ends. +-- When possible, you may prefer to use `io.tmpfile`, which automatically removes the file when +-- the program ends. function os.tmpname() end --- --- Enters an interactive mode with the user, running each string that --- the user enters. Using simple commands and other debug facilities, --- the user can inspect global and local variables, change their values, --- evaluate expressions, and so on. A line containing only the word `cont` +-- Enters an interactive mode with the user, running each string that the user enters. Using +-- simple commands and other debug facilities, the user can inspect global and local variables, +-- change their values, evaluate expressions, and so on. A line containing only the word `cont` -- finishes this function, so that the caller continues its execution. -- --- Note that commands for `debug.debug` are not lexically nested within any --- function and so have no direct access to local variables. +-- Note that commands for `debug.debug` are not lexically nested within any function and so +-- have no direct access to local variables. function debug.debug() end --- @@ -1659,60 +1516,54 @@ function debug.debug() end function debug.getfenv(o) end --- --- Returns the current hook settings of the thread, as three values: the --- current hook function, the current hook mask, and the current hook count, --- as set by the `debug.sethook` function. +-- Returns the current hook settings of the thread, as three values: the current hook function, +-- the current hook mask, and the current hook count, as set by the `debug.sethook` function. -- -- Returns nil if there is no active hook. function debug.gethook([thread]) end --- --- Returns a table with information about a function. You can give the --- function directly or you can give a number as the value of `f`, which means --- the function running at level `f` of the call stack of the given thread: --- level 0 is the current function (`getinfo` itself); level 1 is the function --- that called `getinfo` (except for tail calls, which do not count in the --- stack); and so on. If `f` is a number greater than the number of active --- functions, then `getinfo` returns nil. --- --- The returned table can contain all the fields returned by `lua_getinfo`, --- with the string `what` describing which fields to fill in. The default for --- `what` is to get all information available, except the table of valid --- lines. If present, the option '`f`' adds a field named `func` with --- the function itself. If present, the option '`L`' adds a field named --- `activelines` with the table of valid lines. --- --- For instance, the expression `debug.getinfo(1,"n").name` returns a table --- with a name for the current function, if a reasonable name can be found, --- and the expression `debug.getinfo(print)` returns a table with all available --- information about the `print` function. +-- Returns a table with information about a function. You can give the function directly or +-- you can give a number as the value of `f`, which means the function running at level `f` +-- of the call stack of the given thread: level 0 is the current function (`getinfo` itself); +-- level 1 is the function that called `getinfo` (except for tail calls, which do not count in +-- the stack); and so on. If `f` is a number greater than the number of active functions, then +-- `getinfo` returns nil. +-- +-- The returned table can contain all the fields returned by `lua_getinfo`, with the string +-- `what` describing which fields to fill in. The default for `what` is to get all information +-- available, except the table of valid lines. If present, the option '`f`' adds a field named +-- `func` with the function itself. If present, the option '`L`' adds a field named `activelines` +-- with the table of valid lines. +-- +-- For instance, the expression `debug.getinfo(1,"n").name` returns a table with a name for the +-- current function, if a reasonable name can be found, and the expression `debug.getinfo(print)` +-- returns a table with all available information about the `print` function. function debug.getinfo([thread,] f [, what]) end --- --- This function returns the name and the value of the local variable with index --- `local` of the function at level `f` of the stack. This function accesses not --- only explicit local variables, but also parameters and temporary values. +-- This function returns the name and the value of the local variable with index `local` of the +-- function at level `f` of the stack. This function accesses not only explicit local variables, +-- but also parameters and temporary values. -- --- The first parameter or local variable has index 1, and so on, following the --- order that they are declared in the code, counting only the variables that --- are active in the current scope of the function. Compile-time constants may --- not appear in this listing, if they were optimized away by the compiler. --- Negative indices refer to vararg parameters; -1 is the first vararg --- parameter. The function returns nil if there is no variable with the given --- index, and raises an error when called with a level out of range. (You can --- call `debug.getinfo` to check whether the level is valid.) +-- The first parameter or local variable has index 1, and so on, following the order that +-- they are declared in the code, counting only the variables that are active in the current +-- scope of the function. Compile-time constants may not appear in this listing, if they were +-- optimized away by the compiler. Negative indices refer to vararg parameters; -1 is the first +-- vararg parameter. The function returns nil if there is no variable with the given index, +-- and raises an error when called with a level out of range. (You can call `debug.getinfo` +-- to check whether the level is valid.) -- --- Variable names starting with '(' (open parenthesis) represent variables with --- no known names (internal variables such as loop control variables, and --- variables from chunks saved without debug information). +-- Variable names starting with '(' (open parenthesis) represent variables with no known names +-- (internal variables such as loop control variables, and variables from chunks saved without +-- debug information). -- --- The parameter `f` may also be a function. In that case, `getlocal` returns --- only the name of function parameters. +-- The parameter `f` may also be a function. In that case, `getlocal` returns only the name of +-- function parameters. function debug.getlocal([thread,] f, local) end --- --- Returns the metatable of the given `value` or nil if it does not have --- a metatable. +-- Returns the metatable of the given `value` or nil if it does not have a metatable. function debug.getmetatable(value) end --- @@ -1720,82 +1571,77 @@ function debug.getmetatable(value) end function debug.getregistry() end --- --- This function returns the name and the value of the upvalue with index --- `up` of the function `f`. The function returns nil if there is no upvalue --- with the given index. +-- This function returns the name and the value of the upvalue with index `up` of the function +-- `f`. The function returns nil if there is no upvalue with the given index. -- --- (For Lua functions, upvalues are the external local variables that the --- function uses, and that are consequently included in its closure.) +-- (For Lua functions, upvalues are the external local variables that the function uses, and +-- that are consequently included in its closure.) -- --- For C functions, this function uses the empty string `""` as a name for all --- upvalues. +-- For C functions, this function uses the empty string `""` as a name for all upvalues. -- --- Variable name '`?`' (interrogation mark) represents variables with no known --- names (variables from chunks saved without debug information). +-- Variable name '`?`' (interrogation mark) represents variables with no known names (variables +-- from chunks saved without debug information). function debug.getupvalue(f, up) end --- --- Returns the `n`-th user value associated to the userdata `u` plus a boolean, --- false, if the userdata does not have that value. +-- Returns the `n`-th user value associated to the userdata `u` plus a boolean, false, if the +-- userdata does not have that value. -- -- New in Lua 5.2. function debug.getuservalue(u, n) end --- --- Sets the environment of the given `object` to the given `table`. Returns --- `object`. +-- Sets the environment of the given `object` to the given `table`. Returns `object`. -- -- Deprecated in Lua 5.2. function debug.setfenv(object, table) end --- --- Sets the given function as the debug hook. The string `mask` and the number --- `count` describe when the hook will be called. The string mask may have any --- combination of the following characters, with the given meaning: --- "c": the hook is called every time Lua calls a function; --- "r": the hook is called every time Lua returns from a function; --- "l": the hook is called every time Lua enters a new line of code. +-- Sets the given function as the debug hook. The string `mask` and the number `count` describe +-- when the hook will be called. The string mask may have any combination of the following +-- characters, with the given meaning: +-- +-- * "c": the hook is called every time Lua calls a function; +-- * "r": the hook is called every time Lua returns from a function; +-- * "l": the hook is called every time Lua enters a new line of code. -- --- Moreover, with a `count` different from zero, the hook is called also after --- every `count` instructions. +-- Moreover, with a `count` different from zero, the hook is called also after every `count` +-- instructions. -- -- When called without arguments, `debug.sethook` turns off the hook. -- --- When the hook is called, its first parameter is a string describing --- the event that has triggered its call: `"call"`, `"tail call"`, `"return"`, --- `"line"`, and `"count"`. For line events, the hook also gets the new line --- number as its second parameter. Inside a hook, you can call `getinfo` with --- level 2 to get more information about the running function. (Level 0 is the --- `getinfo` function, and level 1 is the hook function.) +-- When the hook is called, its first parameter is a string describing the event that has +-- triggered its call: `"call"`, `"tail call"`, `"return"`, `"line"`, and `"count"`. For line +-- events, the hook also gets the new line number as its second parameter. Inside a hook, you +-- can call `getinfo` with level 2 to get more information about the running function. (Level +-- 0 is the `getinfo` function, and level 1 is the hook function.) function debug.sethook([thread,] hook, mask [, count]) end --- --- This function assigns the value `value` to the local variable with --- index `local` of the function at level `level` of the stack. The function --- returns nil if there is no local variable with the given index, and raises --- an error when called with a `level` out of range. (You can call `getinfo` --- to check whether the level is valid.) Otherwise, it returns the name of --- the local variable. +-- This function assigns the value `value` to the local variable with index `local` of the +-- function at level `level` of the stack. The function returns nil if there is no local variable +-- with the given index, and raises an error when called with a `level` out of range. (You can +-- call `getinfo` to check whether the level is valid.) Otherwise, it returns the name of the +-- local variable. -- -- See `debug.getlocal` for more information about variable indices and names. function debug.setlocal([thread,] level, local, value) end --- --- Sets the metatable for the given `value` to the given `table` (which --- can be nil). +-- Sets the metatable for the given `value` to the given `table` (which can be nil). function debug.setmetatable(value, table) end --- --- This function assigns the value `value` to the upvalue with index `up` --- of the function `f`. The function returns nil if there is no upvalue with the --- given index. Otherwise, it returns the name of the upvalue. +-- This function assigns the value `value` to the upvalue with index `up` of the function +-- `f`. The function returns nil if there is no upvalue with the given index. Otherwise, it +-- returns the name of the upvalue. -- -- See `debug.getupvalue` for more information about upvalues. function debug.setupvalue(f, up, value) end --- --- Sets the given `value` as the `n`-th user value associated to the given --- `udata`. `udata` must be a full userdata. +-- Sets the given `value` as the `n`-th user value associated to the given `udata`. `udata` +-- must be a full userdata. -- -- Returns `udata`, or nil if the userdata does not have that value. -- @@ -1803,29 +1649,27 @@ function debug.setupvalue(f, up, value) end function debug.setuservalue(udata, value, n) end --- --- If `message` is present but is neither a string nor nil, this function --- returns `message` without further processing. Otherwise, it returns a string --- with a traceback of the call stack. The optional `message` string is appended --- at the beginning of the traceback. An optional `level` number tells at which --- level to start the traceback (default is 1, the function calling +-- If `message` is present but is neither a string nor nil, this function returns `message` +-- without further processing. Otherwise, it returns a string with a traceback of the call +-- stack. The optional `message` string is appended at the beginning of the traceback. An optional +-- `level` number tells at which level to start the traceback (default is 1, the function calling -- `traceback`). function debug.traceback([thread,] [message] [,level]) end --- --- Returns a unique identifier (as a light userdata) for the upvalue numbered --- `n` from the given function. +-- Returns a unique identifier (as a light userdata) for the upvalue numbered `n` from the +-- given function. -- --- These unique identifiers allow a program to check whether different closures --- share upvalues. Lua closures that share an upvalue (that is, that access a --- same external local variable) will return identical ids for those upvalue --- indices. +-- These unique identifiers allow a program to check whether different closures share upvalues. Lua +-- closures that share an upvalue (that is, that access a same external local variable) will +-- return identical ids for those upvalue indices. -- -- New in Lua 5.2. function debug.upvalueid(f, n) end --- --- Make the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue --- of the Lua closure `f2`. +-- Make the `n1`-th upvalue of the Lua closure `f1` refer to the `n2`-th upvalue of the Lua +-- closure `f2`. -- -- New in Lua 5.2. function debug.upvaluejoin(f1, n1, f2, n2) end @@ -1835,26 +1679,22 @@ function debug.upvaluejoin(f1, n1, f2, n2) end -- LPeg. --- --- The matching function. It attempts to match the given pattern against the --- subject string. If the match succeeds, returns the index in the subject of --- the first character after the match, or the captured values (if the pattern --- captured any value). +-- The matching function. It attempts to match the given pattern against the subject string. If +-- the match succeeds, returns the index in the subject of the first character after the match, +-- or the captured values (if the pattern captured any value). -- --- An optional numeric argument `init` makes the match start at that position in --- the subject string. As usual in Lua libraries, a negative value counts from --- the end. +-- An optional numeric argument `init` makes the match start at that position in the subject +-- string. As usual in Lua libraries, a negative value counts from the end. -- --- Unlike typical pattern-matching functions, match works only in anchored mode; --- that is, it tries to match the pattern with a prefix of the given subject --- string (at position `init`), not with an arbitrary substring of the subject. --- So, if we want to find a pattern anywhere in a string, we must either write a --- loop in Lua or write a pattern that matches anywhere. This second approach is --- easy and quite efficient; see examples. +-- Unlike typical pattern-matching functions, match works only in anchored mode; that is, it +-- tries to match the pattern with a prefix of the given subject string (at position `init`), +-- not with an arbitrary substring of the subject. So, if we want to find a pattern anywhere in +-- a string, we must either write a loop in Lua or write a pattern that matches anywhere. This +-- second approach is easy and quite efficient; see examples. function lpeg.match(pattern, subject [, init]) end --- --- If the given value is a pattern, returns the string "pattern". Otherwise --- returns nil. +-- If the given value is a pattern, returns the string "pattern". Otherwise returns nil. function lpeg.type(value) end --- @@ -1862,129 +1702,116 @@ function lpeg.type(value) end function lpeg.version() end --- --- Sets the maximum size for the backtrack stack used by LPeg to track calls and --- choices. Most well-written patterns need little backtrack levels and --- therefore you seldom need to change this maximum; but a few useful patterns --- may need more space. Before changing this maximum you should try to rewrite --- your pattern to avoid the need for extra space. +-- Sets the maximum size for the backtrack stack used by LPeg to track calls and choices. Most +-- well-written patterns need little backtrack levels and therefore you seldom need to change +-- this maximum; but a few useful patterns may need more space. Before changing this maximum +-- you should try to rewrite your pattern to avoid the need for extra space. function lpeg.setmaxstack(max) end --- --- Converts the given value into a proper pattern, according to the following --- rules: +-- Converts the given value into a proper pattern, according to the following rules: +-- -- * If the argument is a pattern, it is returned unmodified. --- * If the argument is a string, it is translated to a pattern that matches --- the string literally. --- * If the argument is a non-negative number n, the result is a pattern that --- matches exactly n characters. --- * If the argument is a negative number -n, the result is a pattern that --- succeeds only if the input string has less than n characters left: --- `lpeg.P(-n)` is equivalent to `-lpeg.P(n)` (see the unary minus --- operation). --- * If the argument is a boolean, the result is a pattern that always --- succeeds or always fails (according to the boolean value), without --- consuming any input. --- * If the argument is a table, it is interpreted as a grammar (see --- Grammars). --- * If the argument is a function, returns a pattern equivalent to a --- match-time capture over the empty string. +-- * If the argument is a string, it is translated to a pattern that matches the string +-- literally. +-- * If the argument is a non-negative number n, the result is a pattern that matches exactly +-- n characters. +-- * If the argument is a negative number -n, the result is a pattern that succeeds only if the +-- input string has less than n characters left: `lpeg.P(-n)` is equivalent to `-lpeg.P(n)` +-- (see the unary minus operation). +-- * If the argument is a boolean, the result is a pattern that always succeeds or always fails +-- (according to the boolean value), without consuming any input. +-- * If the argument is a table, it is interpreted as a grammar (see Grammars). +-- * If the argument is a function, returns a pattern equivalent to a match-time capture over +-- the empty string. function lpeg.P(value) end --- --- Returns a pattern that matches only if the input string at the current --- position is preceded by `patt`. Pattern `patt` must match only strings with --- some fixed length, and it cannot contain captures. +-- Returns a pattern that matches only if the input string at the current position is preceded +-- by `patt`. Pattern `patt` must match only strings with some fixed length, and it cannot +-- contain captures. -- --- Like the and predicate, this pattern never consumes any input, independently --- of success or failure. +-- Like the and predicate, this pattern never consumes any input, independently of success +-- or failure. function lpeg.B(patt) end --- --- Returns a pattern that matches any single character belonging to one of the --- given ranges. Each `range` is a string xy of length 2, representing all --- characters with code between the codes of x and y (both inclusive). +-- Returns a pattern that matches any single character belonging to one of the given ranges. Each +-- `range` is a string xy of length 2, representing all characters with code between the codes +-- of x and y (both inclusive). -- --- As an example, the pattern `lpeg.R("09")` matches any digit, and --- `lpeg.R("az", "AZ")` matches any ASCII letter. +-- As an example, the pattern `lpeg.R("09")` matches any digit, and `lpeg.R("az", "AZ")` +-- matches any ASCII letter. function lpeg.R({range}) end --- --- Returns a pattern that matches any single character that appears in the given --- string. (The S stands for Set.) +-- Returns a pattern that matches any single character that appears in the given string. (The +-- S stands for Set.) -- -- As an example, the pattern `lpeg.S("+-*/")` matches any arithmetic operator. -- --- Note that, if `s` is a character (that is, a string of length 1), then --- `lpeg.P(s)` is equivalent to `lpeg.S(s)` which is equivalent to --- `lpeg.R(s..s)`. Note also that both `lpeg.S("")` and `lpeg.R()` are patterns --- that always fail. +-- Note that, if `s` is a character (that is, a string of length 1), then `lpeg.P(s)` is equivalent +-- to `lpeg.S(s)` which is equivalent to `lpeg.R(s..s)`. Note also that both `lpeg.S("")` and +-- `lpeg.R()` are patterns that always fail. function lpeg.S(string) end --- --- This operation creates a non-terminal (a variable) for a grammar. The created --- non-terminal refers to the rule indexed by `v` in the enclosing grammar. (See --- Grammars for details.) +-- This operation creates a non-terminal (a variable) for a grammar. The created non-terminal +-- refers to the rule indexed by `v` in the enclosing grammar. (See Grammars for details.) function lpeg.V(v) end --- --- Returns a table with patterns for matching some character classes according --- to the current locale. The table has fields named `alnum`, `alpha`, `cntrl`, --- `digit`, `graph`, `lower`, `print`, `punct`, `space`, `upper`, and `xdigit`, --- each one containing a correspondent pattern. Each pattern matches any single --- character that belongs to its class. +-- Returns a table with patterns for matching some character classes according to the current +-- locale. The table has fields named `alnum`, `alpha`, `cntrl`, `digit`, `graph`, `lower`, +-- `print`, `punct`, `space`, `upper`, and `xdigit`, each one containing a correspondent +-- pattern. Each pattern matches any single character that belongs to its class. -- --- If called with an argument `table`, then it creates those fields inside the --- given table and returns that table. +-- If called with an argument `table`, then it creates those fields inside the given table and +-- returns that table. function lpeg.locale([table]) end --- --- Creates a simple capture, which captures the substring of the subject that --- matches `patt`. The captured value is a string. If `patt` has other captures, --- their values are returned after this one. +-- Creates a simple capture, which captures the substring of the subject that matches `patt`. The +-- captured value is a string. If `patt` has other captures, their values are returned after +-- this one. function lpeg.C(patt) end --- --- Creates an argument capture. This pattern matches the empty string and --- produces the value given as the nth extra argument given in the call to --- `lpeg.match`. +-- Creates an argument capture. This pattern matches the empty string and produces the value +-- given as the nth extra argument given in the call to `lpeg.match`. function lpeg.Carg(n) end --- --- Creates a back capture. This pattern matches the empty string and produces --- the values produced by the most recent group capture named `name`. +-- Creates a back capture. This pattern matches the empty string and produces the values produced +-- by the most recent group capture named `name`. -- --- Most recent means the last complete outermost group capture with the given --- name. A Complete capture means that the entire pattern corresponding to the --- capture has matched. An Outermost capture means that the capture is not --- inside another complete capture. +-- Most recent means the last complete outermost group capture with the given name. A Complete +-- capture means that the entire pattern corresponding to the capture has matched. An Outermost +-- capture means that the capture is not inside another complete capture. -- --- In the same way that LPeg does not specify when it evaluates captures, it --- does not specify whether it reuses values previously produced by the group or --- re-evaluates them. +-- In the same way that LPeg does not specify when it evaluates captures, it does not specify +-- whether it reuses values previously produced by the group or re-evaluates them. function lpeg.Cb(name) end --- --- Creates a constant capture. This pattern matches the empty string and --- produces all given values as its captured values. +-- Creates a constant capture. This pattern matches the empty string and produces all given +-- values as its captured values. function lpeg.Cc([value, ...]) end --- --- Creates a fold capture. If patt produces a list of captures C1 C2 ... Cn, --- this capture will produce the value func(...func(func(C1, C2), C3)..., Cn), --- that is, it will fold (or accumulate, or reduce) the captures from `patt` --- using function `func`. +-- Creates a fold capture. If patt produces a list of captures C1 C2 ... Cn, this capture will +-- produce the value func(...func(func(C1, C2), C3)..., Cn), that is, it will fold (or accumulate, +-- or reduce) the captures from `patt` using function `func`. -- --- This capture assumes that `patt` should produce at least one capture with at --- least one value (of any type), which becomes the initial value of an --- accumulator. (If you need a specific initial value, you may prefix a constant --- capture to `patt`.) For each subsequent capture, LPeg calls `func` with this --- accumulator as the first argument and all values produced by the capture as --- extra arguments; the first result from this call becomes the new value for --- the accumulator. The final value of the accumulator becomes the captured --- value. +-- This capture assumes that `patt` should produce at least one capture with at least one value +-- (of any type), which becomes the initial value of an accumulator. (If you need a specific +-- initial value, you may prefix a constant capture to `patt`.) For each subsequent capture, +-- LPeg calls `func` with this accumulator as the first argument and all values produced by +-- the capture as extra arguments; the first result from this call becomes the new value for +-- the accumulator. The final value of the accumulator becomes the captured value. -- --- As an example, the following pattern matches a list of numbers separated by --- commas and returns their addition: +-- As an example, the following pattern matches a list of numbers separated by commas and +-- returns their addition: -- -- -- matches a numeral and captures its numerical value -- number = lpeg.R"09"^1 / tonumber @@ -1999,84 +1826,72 @@ function lpeg.Cc([value, ...]) end function lpeg.Cf(patt, func) end --- --- Creates a group capture. It groups all values returned by `patt` into a --- single capture. The group may be anonymous (if no name is given) or named --- with the given name. +-- Creates a group capture. It groups all values returned by `patt` into a single capture. The +-- group may be anonymous (if no name is given) or named with the given name. -- --- An anonymous group serves to join values from several captures into a single --- capture. A named group has a different behavior. In most situations, a named --- group returns no values at all. Its values are only relevant for a following --- back capture or when used inside a table capture. +-- An anonymous group serves to join values from several captures into a single capture. A named +-- group has a different behavior. In most situations, a named group returns no values at all. Its +-- values are only relevant for a following back capture or when used inside a table capture. function lpeg.Cg(patt [, name]) end --- --- Creates a position capture. It matches the empty string and captures the --- position in the subject where the match occurs. The captured value is a --- number. +-- Creates a position capture. It matches the empty string and captures the position in the +-- subject where the match occurs. The captured value is a number. function lpeg.Cp() end --- --- Creates a substitution capture, which captures the substring of the subject --- that matches `patt`, with substitutions. For any capture inside `patt` with a --- value, the substring that matched the capture is replaced by the capture --- value (which should be a string). The final captured value is the string --- resulting from all replacements. +-- Creates a substitution capture, which captures the substring of the subject that matches +-- `patt`, with substitutions. For any capture inside `patt` with a value, the substring that +-- matched the capture is replaced by the capture value (which should be a string). The final +-- captured value is the string resulting from all replacements. function lpeg.Cs(patt) end --- --- Creates a table capture. This capture returns a table with all values from --- all anonymous captures made by `patt` inside this table in successive integer --- keys, starting at 1. Moreover, for each named capture group created by --- `patt`, the first value of the group is put into the table with the group --- name as its key. The captured value is only the table. +-- Creates a table capture. This capture returns a table with all values from all anonymous +-- captures made by `patt` inside this table in successive integer keys, starting at 1. Moreover, +-- for each named capture group created by `patt`, the first value of the group is put into +-- the table with the group name as its key. The captured value is only the table. function lpeg.Ct(patt) end --- --- Creates a match-time capture. Unlike all other captures, this one is --- evaluated immediately when a match occurs (even if it is part of a larger --- pattern that fails later). It forces the immediate evaluation of all its --- nested captures and then calls `function`. +-- Creates a match-time capture. Unlike all other captures, this one is evaluated immediately +-- when a match occurs (even if it is part of a larger pattern that fails later). It forces +-- the immediate evaluation of all its nested captures and then calls `function`. -- --- The given function gets as arguments the entire subject, the current position --- (after the match of `patt`), plus any capture values produced by `patt`. +-- The given function gets as arguments the entire subject, the current position (after the +-- match of `patt`), plus any capture values produced by `patt`. -- --- The first value returned by `function` defines how the match happens. If the --- call returns a number, the match succeeds and the returned number becomes the --- new current position. (Assuming a subject s and current position i, the --- returned number must be in the range [i, len(s) + 1].) If the call returns --- true, the match succeeds without consuming any input. (So, to return true is --- equivalent to return i.) If the call returns false, nil, or no value, the --- match fails. +-- The first value returned by `function` defines how the match happens. If the call returns a +-- number, the match succeeds and the returned number becomes the new current position. (Assuming +-- a subject s and current position i, the returned number must be in the range [i, len(s) + +-- 1].) If the call returns true, the match succeeds without consuming any input. (So, to return +-- true is equivalent to return i.) If the call returns false, nil, or no value, the match fails. -- --- Any extra values returned by the function become the values produced by the --- capture. +-- Any extra values returned by the function become the values produced by the capture. function lpeg.Cmt(patt, function) end -- LuaFileSystem. --- --- Returns a table with the file attributes corresponding to filepath (or nil --- followed by an error message in case of error). If the second optional --- argument is given and is a string, then only the value of the named attribute --- is returned (this use is equivalent to lfs.attributes(filepath)[aname], but --- the table is not created and only one attribute is retrieved from the O.S.). --- If a table is passed as the second argument, it is filled with attributes and --- returned instead of a new table. The attributes are described as follows; --- attribute mode is a string, all the others are numbers, and the time related --- attributes use the same time reference of os.time: --- dev: on Unix systems, this represents the device that the inode resides on. --- On Windows systems, represents the drive number of the disk containing --- the file --- ino: on Unix systems, this represents the inode number. On Windows systems --- this has no meaning --- mode: string representing the associated protection mode (the values could --- be file, directory, link, socket, named pipe, char device, block --- device or other) +-- Returns a table with the file attributes corresponding to filepath (or nil followed by +-- an error message in case of error). If the second optional argument is given and is a +-- string, then only the value of the named attribute is returned (this use is equivalent to +-- lfs.attributes(filepath)[aname], but the table is not created and only one attribute is +-- retrieved from the O.S.). If a table is passed as the second argument, it is filled with +-- attributes and returned instead of a new table. The attributes are described as follows; +-- attribute mode is a string, all the others are numbers, and the time related attributes use +-- the same time reference of os.time: +-- +-- dev: on Unix systems, this represents the device that the inode resides on. On Windows +-- systems, represents the drive number of the disk containing the file +-- ino: on Unix systems, this represents the inode number. On Windows systems this has no meaning +-- mode: string representing the associated protection mode (the values could be file, +-- directory, link, socket, named pipe, char device, block device or other) -- nlink: number of hard links to the file -- uid: user-id of owner (Unix only, always 0 on Windows) -- gid: group-id of owner (Unix only, always 0 on Windows) --- rdev: on Unix systems, represents the device type, for special file inodes. --- On Windows systems represents the same as dev +-- rdev: on Unix systems, represents the device type, for special file inodes. On Windows +-- systems represents the same as dev -- access: time of last access -- modification: time of last data modification -- change: time of last file status change @@ -2085,10 +1900,10 @@ function lpeg.Cmt(patt, function) end -- blocks: block allocated for file; (Unix only) -- blksize: optimal file system I/O blocksize; (Unix only) -- --- This function uses stat internally thus if the given filepath is a symbolic --- link, it is followed (if it points to another link the chain is followed --- recursively) and the information is about the file it refers to. To obtain --- information about the link itself, see function lfs.symlinkattributes. +-- This function uses stat internally thus if the given filepath is a symbolic link, it is +-- followed (if it points to another link the chain is followed recursively) and the information +-- is about the file it refers to. To obtain information about the link itself, see function +-- lfs.symlinkattributes. function lfs.attributes(filepath [, aname | atable]) end --- @@ -2098,93 +1913,86 @@ function lfs.attributes(filepath [, aname | atable]) end function lfs.chdir(path) end --- --- Creates a lockfile (called lockfile.lfs) in path if it does not exist and --- returns the lock. If the lock already exists checks if it's stale, using the --- second parameter (default for the second parameter is INT_MAX, which in --- practice means the lock will never be stale. To free the the lock call --- lock:free(). +-- Creates a lockfile (called lockfile.lfs) in path if it does not exist and returns the lock. If +-- the lock already exists checks if it's stale, using the second parameter (default for the +-- second parameter is INT_MAX, which in practice means the lock will never be stale. To free +-- the the lock call lock:free(). -- --- In case of any errors it returns nil and the error message. In particular, --- if the lock exists and is not stale it returns the "File exists" message. +-- In case of any errors it returns nil and the error message. In particular, if the lock exists +-- and is not stale it returns the "File exists" message. function lfs.lock_dir(path, [seconds_stale]) end --- --- Returns a string with the current working directory or nil plus an error --- string. +-- Returns a string with the current working directory or nil plus an error string. function lfs.currentdir() end --- --- Lua iterator over the entries of a given directory. Each time the iterator is --- called with dir_obj it returns a directory entry's name as a string, or nil --- if there are no more entries. You can also iterate by calling dir_obj:next(), --- and explicitly close the directory before the iteration finished with --- dir_obj:close(). Raises an error if path is not a directory. +-- Lua iterator over the entries of a given directory. Each time the iterator is called +-- with dir_obj it returns a directory entry's name as a string, or nil if there are no more +-- entries. You can also iterate by calling dir_obj:next(), and explicitly close the directory +-- before the iteration finished with dir_obj:close(). Raises an error if path is not a directory. function lfs.dir(path) end --- --- Locks a file or a part of it. This function works on open files; the file --- handle should be specified as the first argument. The string mode could be --- either r (for a read/shared lock) or w (for a write/exclusive lock). The --- optional arguments start and length can be used to specify a starting point --- and its length; both should be numbers. +-- Locks a file or a part of it. This function works on open files; the file handle should be +-- specified as the first argument. The string mode could be either r (for a read/shared lock) +-- or w (for a write/exclusive lock). The optional arguments start and length can be used to +-- specify a starting point and its length; both should be numbers. -- --- Returns true if the operation was successful; in case of error, it returns --- nil plus an error string. +-- Returns true if the operation was successful; in case of error, it returns nil plus an +-- error string. function lfs.lock(filehandle, mode[, start[, length]]) end --- --- Creates a link. The first argument is the object to link to and the second is --- the name of the link. If the optional third argument is true, the link will --- be a symbolic link (by default, a hard link is created). +-- Creates a link. The first argument is the object to link to and the second is the name of the +-- link. If the optional third argument is true, the link will be a symbolic link (by default, +-- a hard link is created). function lfs.link(old, new[, symlink]) end --- -- Creates a new directory. The argument is the name of the new directory. -- --- Returns true in case of success or nil, an error message and a --- system-dependent error code in case of error. +-- Returns true in case of success or nil, an error message and a system-dependent error code +-- in case of error. function lfs.mkdir(dirname) end --- -- Removes an existing directory. The argument is the name of the directory. -- --- Returns true in case of success or nil, an error message and a --- system-dependent error code in case of error. +-- Returns true in case of success or nil, an error message and a system-dependent error code +-- in case of error. function lfs.rmdir(dirname) end --- --- Sets the writing mode for a file. The mode string can be either "binary" or --- "text". Returns true followed by the previous mode string for the file, or --- nil followed by an error string in case of errors.. On non-Windows platforms, --- where the two modes are identical, setting the mode has no effect, and the --- mode is always returned as binary. +-- Sets the writing mode for a file. The mode string can be either "binary" or "text". Returns +-- true followed by the previous mode string for the file, or nil followed by an error string +-- in case of errors. On non-Windows platforms, where the two modes are identical, setting +-- the mode has no effect, and the mode is always returned as binary. function lfs.setmode(file, mode) end --- --- Identical to lfs.attributes except that it obtains information about the link --- itself (not the file it refers to). It also adds a target field, containing --- the file name that the symlink points to. On Windows this function does not --- yet support links, and is identical to lfs.attributes. +-- Identical to lfs.attributes except that it obtains information about the link itself (not +-- the file it refers to). It also adds a target field, containing the file name that the +-- symlink points to. On Windows this function does not yet support links, and is identical +-- to lfs.attributes. function lfs.symlinkattributes(filepath [, aname]) end --- --- Set access and modification times of a file. This function is a bind to utime --- function. The first argument is the filename, the second argument (atime) is --- the access time, and the third argument (mtime) is the modification time. --- Both times are provided in seconds (which should be generated with Lua --- standard function os.time). If the modification time is omitted, the access --- time provided is used; if both times are omitted, the current time is used. +-- Set access and modification times of a file. This function is a bind to utime function. The +-- first argument is the filename, the second argument (atime) is the access time, and the +-- third argument (mtime) is the modification time. Both times are provided in seconds (which +-- should be generated with Lua standard function os.time). If the modification time is omitted, +-- the access time provided is used; if both times are omitted, the current time is used. -- --- Returns true in case of success or nil, an error message and a --- system-dependent error code in case of error. +-- Returns true in case of success or nil, an error message and a system-dependent error code +-- in case of error. function lfs.touch(filepath [, atime [, mtime]]) end --- --- Unlocks a file or a part of it. This function works on open files; the file --- handle should be specified as the first argument. The optional arguments --- start and length can be used to specify a starting point and its length; both --- should be numbers. +-- Unlocks a file or a part of it. This function works on open files; the file handle should +-- be specified as the first argument. The optional arguments start and length can be used to +-- specify a starting point and its length; both should be numbers. -- --- Returns true if the operation was successful; in case of error, it returns --- nil plus an error string. +-- Returns true if the operation was successful; in case of error, it returns nil plus an +-- error string. function lfs.unlock(filehandle[, start[, length]]) end |