parser keeps track of newlines