Hi,

In message "Re: operator precedence of assignment"
    on Tue, 2 Jan 2007 22:26:53 +0900, Daniel DeLorme <dan-ml / dan42.com> writes:
|
|How do you think ruby parses this expression?
|   a = 1 + b = 2 + c = 4 + d = 8
|
|Originally I thought that operator precedence would result in
|   a = (1 + b) = (2 + c) = (4 + d) = 8
|and since an assignment requires a variable, that would result in a SyntaxError. 
|But instead it seems that everything on the right side of the assignment 
|operator is evaluated first:
|   a = (1 + (b = (2 + (c = (4 + (d = 8))))))
|
|That had me really puzzled at first but I guess the behavior makes a certain 
|sense, and it's more useful than a syntax error. Ruby's tolerant parser wins again!

Ah, for your information, that surprised me as well.  Perhaps bison
generated parser is smarter and eagerer than I expected.  I have no
idea what to do.

							matz.