In the following:
int a, b, c;
a = b = c = 4;
How are the r-values and l-values classified? My guess is, from a parsing perspective, we would start off with R-to-L precedence on equals/assignment, so it would be:
c (lv) = 4 (rv)
Now c has the value 4 and b becomes the lvalue:
b (lv) = c/4 (rv)
And again:
a (lv) = b/4
So, perhaps it would look something like:
a (lv) = (
b (lv) = (
c (lv) = 4 (rv) // start here
) (rv)
) (rv)
Is that more-or-less a correct understanding of assignment, lvalues, and rvalues?