It also does not work. x ** y ** z, if we allow it at all, must be right
associative. It must parse as x ** (y ** z).


On Tue, Aug 25, 2015 at 10:08 AM, Mark S. Miller <erig...@google.com> wrote:

> It does not work as well as simply omitting ** entirely.
>
>
> On Tue, Aug 25, 2015 at 9:42 AM, Isiah Meadows <isiahmead...@gmail.com>
> wrote:
>
>> 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
>>>
>>
>
>
> --
>     Cheers,
>     --MarkM
>



-- 
    Cheers,
    --MarkM
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to