From 89f4e7a8dbed4272f85f10568a542697aa3b38f8 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 13 Aug 2018 01:22:14 +0100 Subject: `-no-crt` flag for windows amd64 --- src/tokenizer.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/tokenizer.cpp') diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index 2c233ee9b..507a4b45d 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -142,16 +142,15 @@ String const token_strings[] = { struct TokenPos { String file; - isize line; - isize column; + isize offset; // starting at 0 + isize line; // starting at 1 + isize column; // starting at 1 }; -TokenPos token_pos(String file, isize line, isize column) { - TokenPos pos = {file, line, column}; - return pos; -} - i32 token_pos_cmp(TokenPos const &a, TokenPos const &b) { + if (a.offset != b.offset) { + return (a.offset < b.offset) ? -1 : +1; + } if (a.line != b.line) { return (a.line < b.line) ? -1 : +1; } @@ -825,6 +824,7 @@ Token tokenizer_get_token(Tokenizer *t) { token.string = make_string(t->curr, 1); token.pos.file = t->fullpath; token.pos.line = t->line_count; + token.pos.offset = t->curr - t->start; token.pos.column = t->curr - t->line + 1; Rune curr_rune = t->curr_rune; -- cgit v1.2.3