[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Lua parsing question
- From: Roberto Ierusalimschy <roberto@...>
- Date: Thu, 27 Feb 2020 10:28:25 -0300
> The parsing and code generation of assignment statements is IMO one of
> the trickiest aspects of Lua, another being the handling of multiple
> return values. Lua solves the l-value / r-value dilemma by deferring
> the resolution of these expressions until the expression is used -
> hence the VINDEXED expression type can end up being a GET or a PUT.
>
> The parsing of assignments follows a strange course. I believe the
> vars on the left of '=' are parsed recursively first, then at the top
> of recursion, the expression list to the right of '=' is parsed, and
> then during the unwind, the store instructions get generated. Please
> correct me if I am wrong.
Note that all this complexity is mainly due to LL(k) parsing and the
absence of an AST. With an LR parser and/or an AST, the implementation
would be able to follow the grammar almost literally. (What parsing
technique does your new implementation use?)
-- Roberto