Skip to content

Parser notes

Dibyendu Majumdar edited this page Jul 7, 2020 · 9 revisions

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.

TO CHECK

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

Clone this wiki locally