lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

no need, you can throw a error when you see 'in' and list is not a namelist

在 2012-2-18 中午12:24,"HyperHacker" <>写道:
On Fri, Feb 17, 2012 at 16:38, Sven Olsen <> wrote:
>> > So, what about the semantics become a exprlist?
>> > exprlist ::= expr { ',' expr } |
>> >                  namelist 'in' expr
>> >
>> > this allows some syntax:
>> > local a, b, c = d, e, f in t
>> > dump(a, b, c in t)
>> > local t = {a, b, c in t}
> That would be quite cute.  Of course, I'm not familiar enough with the
> grammar to know if it might cause other kinds of parser trouble :)
> If you could get it working, I'd certainly be a fan of such a patch.
> -Sven

It seems troublesome to me:
local x, y, z = a, b, c in t
does that parse as: local x, y, z, = t.a, t.b, t.c
or as: local x, y, z = a, b, t.c ?
In the former case, there's no way to access anything *not* in t; in
the latter, it's not very useful. Not to mention, the parser has to
read ahead an arbitrary number of tokens to see where it's meant to
pull these names from.

Sent from my toaster.