diff options
Diffstat (limited to 'src/tokenizer.cpp')
| -rw-r--r-- | src/tokenizer.cpp | 47 |
1 files changed, 2 insertions, 45 deletions
diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index 8d27525e8..70de96dfb 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -757,17 +757,10 @@ void tokenizer_err(Tokenizer *t, TokenPos const &pos, char const *msg, ...) { } void advance_to_next_rune(Tokenizer *t) { -#if 1 if (t->curr_rune == '\n') { t->column_minus_one = 0; t->line_count++; } -#else - // NOTE(bill, 2021-08-02): This is branchless but it is slower in practice - i32 is_newline = t->curr_rune == '\n'; - t->column_minus_one *= 1-is_newline; - t->line_count += is_newline; -#endif if (t->read_curr < t->end) { t->curr = t->read_curr; Rune rune = *t->read_curr; @@ -1070,45 +1063,9 @@ bool scan_escape(Tokenizer *t) { gb_inline void tokenizer_skip_line(Tokenizer *t) { -#if 1 - while (t->read_curr != t->end && t->curr_rune != '\n' && t->curr_rune != GB_RUNE_EOF) { - t->column_minus_one++; - t->curr = t->read_curr++; - t->curr_rune = *t->curr; - if (t->curr_rune == 0) { - tokenizer_err(t, "Illegal character NUL"); - } - } -#else -loop_start:; - u8 *p = t->read_curr; - for (; p < t->end; p++) { - switch (*p) { - case '\n': - case 0xff: - goto loop_end; - case 0: - goto illegal_nul; - } + while (t->curr_rune != '\n' && t->curr_rune != GB_RUNE_EOF) { + advance_to_next_rune(t); } - -loop_end: - p = gb_min(p, t->end); - t->column_minus_one += cast(i32)(p - t->read_curr); - t->read_curr = p; - t->curr = p-1; - t->curr_rune = *t->curr; - return; - -illegal_nul:; - p = gb_min(p, t->end); - t->column_minus_one += cast(i32)(p - t->read_curr); - t->read_curr = p; - t->curr = p-1; - t->curr_rune = *t->curr; - tokenizer_err(t, "Illegal character NUL"); - goto loop_start; -#endif } gb_inline void tokenizer_skip_whitespace(Tokenizer *t, bool on_newline) { |