in the presence of comments, there can be multiple whitespace-like tokens in a row, so we need to ensure that we preserve the entire locations of them, rather than just the last one.  otherwise we get bugs in detecting multiple expressions on a line, because the whitespace at the beginning of a line following a comment is then used to demarcate the end of the preceding expression...which is very wrong.