return when desugaring to closures
Maciej Stachowiak
mjs at apple.com
Fri Oct 17 18:52:05 PDT 2008
On Oct 17, 2008, at 11:17 AM, Waldemar Horwat wrote:
> Maciej Stachowiak wrote:
>> As to the else issue, I don't think that ambiguity can be avoided,
>> but bison lets you solve that with %nonassoc, which is a sound
>> disambiguation mechanism.
>
> It can. I have a machine-validated ES3 (and ES4 from earlier
> proposals) grammar that contains no ambiguities and no handwaving.
> The if-else rule is handled by having a marker on Statement
> productions just like there is a NoIn marker on Expression
> productions. See:
>
> http://www.mozilla.org/js/language/old-es4/core/statements.html#N-IfStatement
>
> I need a grammar with no ambiguities to do things like verify that
> semicolon insertion works and that the / regexp-vs-division
> resolution is always uniquely resolvable in favor of one or the
> other: you don't ever want a parser state which combines rules that
> have division with rules that have a regexp in the same spot because
> the lookahead depends on how you lex the /-token.
In that case I would definitely prefer to see the official spec have
an unambiguous grammar.
(Your grammar still does include the [lookahead∉{function, {}]
construct which can be handled in an analogous way to NoIn.)
Regards,
Maciej
More information about the Es-discuss
mailing list