Lexer: support \r\n as newlines, and give error if \r is found without \n