> >
> > Go strictly from left to right.
>
> How do you assign something that hasn't been evaluated yet? Evaluating the
> expression on the RHS is an absolute prerequisite to evaluating the
> assignment
> itself. (x += x) = 1 is nonsense. It evaluates to 0 = 1.
It makes sense, depending on the language. With LVALUE=RVALUE and
LVALUE+=LVALUE, where the result is an LVALUE, consider it evaluated as
("ref"(x) = deref(x)+deref(x)) = 1
(Try your expression above in C++, for example. It works as expected.)
Nonetheless right to left parsing seems the only sensible semantics in
case of = and op= assignments.
Janis
>
[...]
>
> I've also already proven that at least in ksh it goes right to left, because
> if you define a setter property to trigger a side-effect for each variable,
> the RHS fires before the LHS of the +=.
>
> There's just no amount of mind-bending I can think of that could make
> evaluating the += first produce anything other than an error.
> --
> Dan Douglas
> _______________________________________________
> ast-users mailing list
> [email protected]
> http://lists.research.att.com/mailman/listinfo/ast-users