Work on 14.water.

This leaves us in a high-debug-output state, by the way.

I realized at this point that a successful parse of a subtree that is not an
overall success can result in other subtrees never getting checked. For example
f = function (x) { /* stuff */ } will be seen as an assignment with an rvalue
of the result of the function call function (x) [temporarily forgetting that
function is a keyword, since the grammar doesn't know that]. But it fails when
there's no semicolon, and then the rest of the possible parse tree is never
checked.