Move more errors into the parser/lexer and support mixing blocks at eof