http://kor.i2p/books/The%20C%20Programming%20Language%20by%20K&R/chapter2.html
In addition, for a complicated expression like yyval[yypv[p3+p4] + yypv[p1]] += 2 the assignment operator makes the code easier to understand, since the reader
doesn't have to check painstakingly that two long expressions are indeed the
same, or to wonder why they're not. And an assignment operator may even help
a compiler to produce efficient code. We have already seen that the assignment statement has a value and can occur
in expressions; the most common example is while ((c = getchar())...