I like this. It works very well. On Tue, Aug 25, 2015, 12:38 Claude Pache <claude.pa...@gmail.com> wrote:
> > I think the following grammar could work. > Replace the current (ES2015) PostfixExpression production with: > > ``` > IncrementExpression: > LeftHandSideExpression > LeftHandSideExpression [no LineTerminator here] ++ > LeftHandSideExpression [no LineTerminator here] -- > ++ LeftHandSideExpression > -- LeftHandSideExpression > ``` > > And define UnaryExpression as: > > ``` > UnaryExpression: > IncrementExpression > delete UnaryExpression > void UnaryExpression > typeof UnaryExpression > ++ UnaryExpression > + UnaryExpression > -- UnaryExpression > - UnaryExpression > ~ UnaryExpression > ! UnaryExpression > IncrementExpression ** UnaryExpression > ``` > > where the following production (which exists only to avoid to confusingly > interpret, e.g., `++x++` as `+ +x++`): > > ``` > UnaryExpression: > ++ UnaryExpression > -- UnaryExpression > ``` > > yields a static SyntaxError (or a static ReferenceError if we want to be > 100% compatible ES2015). > > > That way, we have the following expected behaviour: > * in/decrement operators bind most tightly; > * unary and exponentiation operators are applied from right to left. > > > —Claude > > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss