Better error reporting with ranges
Improve error reporting in range again.

It is still not perfect due to the inclusion of artificial token that don't know the line/char position