Module:Repr/doc explained

This module contains functions for generating string representations of Lua objects. It is inspired by Python's repr function.

Usage

To use the module, first you have to import it.

local mRepr = require("Module:Repr")

Then you can use the functions it contains. The documentation for each function is below.

repr

This function generates a string representation of any given Lua object. The idea is that if you copy the string this function produces it, and paste it back into a Lua program, then you should be able to reproduce the original object. This doesn't work for all values, but it should hold for simple cases.

For example, mRepr.repr will output the string {bool = true, number = 6, str = "hello world"}.

Basic syntax:

mRepr.repr(value)

Full syntax:

mRepr.repr(value, options)

Parameters:

The following options can be specified in the options table:

Features:

Here is an example that shows off all the bells and whistles:

local myTable = myTable.cyclic.cyclic = myTable.cyclic -- Create a cycle local options = mw.log(mRepr.repr(myTable, options))

This logs the following:

{
   ["$YMBOL$"] = "Keys that aren't Lua identifiers are quoted",
   [{
      also = "Tables as keys work too"
   }] = "in case you need that",
   cyclic = {
      cyclic = {CYCLIC},
      note = "cyclical tables are printed as just {CYCLIC}"
   },
   hello = "repr",
   isEasyToUse = true,
   mixed = {
      "a",
      "sequence",
      with = "key-value pairs"
   },
   sequence = {
      "a",
      "sequence",
      "table"
   },
   subTables = {
      moreInfo = "Calls itself recursively on sub-tables"
   },
   usefulness = 100,
   usesToString = __tostring functions are called automatically
}

invocationRepr

This function generates a string representation of a function invocation.

Basic syntax:

mRepr.invocationRepr

Full syntax:

mRepr.invocationRepr

Parameters:

Examples:mRepr.invocationRepr

Result: myFunc("test", 4, true, {"a", "b", "c"})