Skip to content

Parser notes

Dibyendu Majumdar edited this page Aug 10, 2020 · 9 revisions

Lua Parser Notes

Handling multiple return values from function calls

Lua functions return multiple values. The caller has to decide how many values to accept.

  1. If the function call is the last expression in a function argument list, or in a return statement, or in a table constructor then we have to allow unlimited values.

  2. If the function call is in an assignment statement (including local declaration) and is the last expression, then the number of return values to accept is equal to corresponding variable plus any excess variables.

  3. In all other cases the function return values are truncated to 1 result.

  4. If a function call is surrounded by parens then it truncates result to 1 value.

Clone this wiki locally