From 90e9fc47cf60b1a81e3b4167aaeb93379161682b Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Sat, 3 Jul 2021 19:59:25 +0100 Subject: [PATCH] lexer: add Step()/NewLine()/Reset() methods to TokenPosition Signed-off-by: Alejandro Mery --- lexer/token.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lexer/token.go b/lexer/token.go index fb42455..bd9ccd7 100644 --- a/lexer/token.go +++ b/lexer/token.go @@ -23,6 +23,20 @@ type TokenPosition struct { Row int } +func (pos *TokenPosition) Reset() { + pos.Line = 1 + pos.Row = 1 +} + +func (pos *TokenPosition) Step(n int) { + pos.Row += n +} + +func (pos *TokenPosition) NewLine() { + pos.Line += 1 + pos.Row = 1 +} + // Token type Token interface { Type() TokenType