lua/visitors/runtime/luaobject library

Classes

LuaBreakStmtException
A type to represent if the callstack was unwound b/c of the lua break keyword. A break statement can only be inside a loop construct like for, while, and repeat. The parser must report a break statement outside of a loop so the runtime can bubble up out of the construct safely while visiting all loop nodes.
LuaDoc
The configuration class for LuaObject.doc instances. To add documentation use the LuaDoc constructor. Provide a category and the generated docs will group it with those objects sharing the same category. To omit the LuaObject from the generated docs, use LuaDoc.skip.
LuaFuncBuilder
This class provides an API for effortlessly constructing lua function objects.
LuaObject
LuaObjectNoSemantics
Represents a lua object for analyzing irregardless if it is a well-defined variable or value. This permits any visitor to look pass semantic errors and continue marching through the grapheme.
LuaReturnValueException
A type to represent if the callstack was unwound b/c of the lua return keyword. Stores the value of the operation to unpack. See ReturnStmtCallStackUnwind and ReturnStmtDoNotUnwind.
LuaThread
A type that represents a lua thread. It only stores the address addr used by the evaluator. This type is used to distinguish a LuaObject.value from other types.

Enums

LuaThreadStatus
Coroutine status values.
LuaType
Strong type enumerations for all possible internal lua primitives. LuaType.unresolved is used for strong type deduction. LuaType.ref is used to help identify control flow. All of the others are the expected user-facing lua types.

Extensions

LuaArgPackUnpack on LuaArgPack
Native2Lua on Object
A convenience utility on Object to construct LuaObject instances in-place.

Typedefs

LuaArgPack = List<LuaObject>
This type is used for multi variable value assignment and for multiple return values.
LuaFieldsMap = Map<Object, LuaObject?>
Shorthand notation for a Map of Object -> LuaObject key-pairs. Note that the LuaObject can be null as lua represents these as LuaType.nil.