vim: catch more errors, make error-printing more friendly (what a mess)
Lexing corner-cases: always reset to beginning of line