Skip to content
Dibyendu Majumdar edited this page Feb 20, 2020 · 9 revisions

Notes for the Compiler

Parser details

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 - which is represented by -1.

  2. If the function call is in an assignment statement and is the last expression, then the number of return values to accept is equal to corresponding var plus an excess vars.

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

So when parsing we can by default set number of results to 1, but extend it for cases 1 and 2.

Clone this wiki locally