> > > > 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 > ast-us...@lists.research.att.com > http://lists.research.att.com/mailman/listinfo/ast-users