as far as possible, anyway. and suppress messages after the first one.
this avoids that scope nesting gets thrown off and thus spurious
followup-errors crop up.
as a "side effect", this fixes a crash resulting from us rewinding the
token stream but ignoring the block stack on the way.
Task-number: QTCREATORBUG-4368
this makes the value list sizehints more correct: instead of the number
of literals and expansions, it's now the number of actual words, and
that only if the expression starts with a literal (otherwise the
pre-allocation is discarded anyway).
the performance impact seems negligible, with qt being a tad slower and
creator a tad faster.
as a side effect, complaining about excess words in a test expression
does not immediately terminate the current line's parsing.
instead of erroring out the parse, only error out the evaluation in
exact mode. that way we can do cumulative evaluation even on broken
files.
Task-number: QTCREATORBUG-3093