diff --git a/src/lex/cursor.rs b/src/lex/cursor.rs index e89cb3a..e4debfc 100644 --- a/src/lex/cursor.rs +++ b/src/lex/cursor.rs @@ -18,7 +18,7 @@ impl Iterator for Cursor { let c = self.raw[self.pos]; self.pos += 1; - if c == '\n' { + if self.current == Some('\n') { self.new_line(); } else { self.col += 1; @@ -51,10 +51,9 @@ impl Cursor { self.pos -= 1; let c = self.raw[self.pos]; + self.col -= 1; if self.col == 0 { self.prev_line(); - } else { - self.col -= 1; } self.current = Some(c); @@ -132,7 +131,7 @@ impl Cursor { fn new_line(&mut self) { self.line_lengths.push(self.col); - self.col = 0; + self.col = 1; self.line += 1; }