[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: RE: Possible bug with statement parsing?
- From: Patrick Donnelly <batrick@...>
- Date: Sat, 23 Jun 2007 18:40:50 -0600
> >As an exception to the free-format syntax of Lua, you> >cannot put a line break before the '(' in a function call.
> >This restriction avoids some ambiguities in the language.
> >If you write
> > a = f
> > (g).x(a)
> >Lua would see that as a single statement, a = f(g).x(a).
> >So, if you want two statements, you must add a semi-colon
> >between them. If you actually want to call f, you must
> >remove the line break before (g).
> As Shmuel pointed out, though, this should be a compile-time
> error ("ambiguous syntax").
Ah well, I got the ambiguous syntax error in an interpretter, and then tried to show it to some friends in IRC with a luabot. I forgot that I wasn't using line breaks in IRC >:)
Why is it not automatically assumed that f is not being called if a line break appears after f but before the opening parenthesis? I would think a compile warning would be better than an actual error.
"One of the lessons of history is that nothing is often a good thing to do and always a clever thing to say."