private void UpdatePosition(char ch) {
switch (ch) {
case '\r':
_lineNumber++;
_linePosition = 1;
_isLastLineBlank = true;
break;
case '\n':
_lineStartCheckpoint = CreateStreamCheckpoint();
break;
case SPACE:
case '\t':
_linePosition++;
break;
default:
_linePosition++;
_isLastLineBlank = false;
break;
}
}