On Wed, Dec 3, 2008 at 9:36 PM, Eric Suen <[EMAIL PROTECTED]> wrote: > > > No, > > ^(x) is not a legal expression, so you don't have to make > block in same line, no semicolon insertion will happens here.
You're looking at the wrong part of the example. Sorry -- the "wrapper" lambda is superfluous, and I should have left it out for clarity. Using the GNU bracing style: x = x * x ^(a,b,c,d,e,f,g) { x } The above parses as an xor expression followed by a block, like so: x = x * x ^ (a,b,c,d,e,f,g) { x } ... which is odd, to be sure, but perfectly legal. The second example: x = x * x ^(a,b,c,d,e,f,g) {x} is not ambiguous, but it's unsuitable for top-down parsing. (I tried to underscore the point by using a long list of formals.) The parser has to get to the opening brace before it can determine that it isn't dealing with an xor expression. -Jon > > see this post: > > https://mail.mozilla.org/pipermail/es-discuss/2008-December/008296.html > > ----- Original Message ----- > From: "Jon Zeppieri" <[EMAIL PROTECTED]> > Newsgroups: gmane.comp.lang.javascript.ecmascript4.general > To: "P T Withington" <[EMAIL PROTECTED]> > Cc: "es-discuss" <[EMAIL PROTECTED]> > Sent: Thursday, December 04, 2008 3:09 AM > Subject: Re: Allen's lambda syntax proposal > > >> 2008/12/3 P T Withington <[EMAIL PROTECTED]>: >>> >>> - prefix ^ might be confused with the infix operator of the same name >> >> With semicolon insertion, isn't this a bigger problem? >> >> The opening brace will need to be on the same line as the formals, >> otherwise the syntax is ambiguous: >> >> ^(x) { >> x = x * x >> ^(a,b,c,d,e,f,g) >> { >> x >> } >> } >> >> And, if it is on the same line, it's still bad for a top-down parser: >> >> ^(x) { >> x = x * x >> ^(a,b,c,d,e,f,g) {x} >> } >> >> Will semicolon insertion be illegal inside a lambda body? >> >> -Jon > > > > _______________________________________________ Es-discuss mailing list Es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss