private int ReadChar() { int v = _has_peek ? _peek : _r.Read(); _has_peek = false; if (_prev_lf) { _line++; _column = 0; _prev_lf = false; } if (v == '\n') { _prev_lf = true; } _column++; return v; }