diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2024-09-19 12:36:43 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-19 12:36:43 +0100 |
| commit | 6bbeb0a243b37f03a15671038a0ec65cdd66981e (patch) | |
| tree | 77be66ea3c8078cc2c4b11ec9839818587dfcd3b /src/tokenizer.cpp | |
| parent | a52b1e03219034d13f8f1f1335b54c0678cc7822 (diff) | |
| parent | 29fedc1808c347774971666ecc90b44e1900dc90 (diff) | |
Merge pull request #4203 from karl-zylinski/file-tags-without-comments
Make tags use #+ syntax instead of //+
Diffstat (limited to 'src/tokenizer.cpp')
| -rw-r--r-- | src/tokenizer.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index 4425bee29..53f6135d0 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -2,6 +2,7 @@ TOKEN_KIND(Token_Invalid, "Invalid"), \ TOKEN_KIND(Token_EOF, "EOF"), \ TOKEN_KIND(Token_Comment, "Comment"), \ + TOKEN_KIND(Token_FileTag, "FileTag"), \ \ TOKEN_KIND(Token__LiteralBegin, ""), \ TOKEN_KIND(Token_Ident, "identifier"), \ @@ -939,6 +940,20 @@ gb_internal void tokenizer_get_token(Tokenizer *t, Token *token, int repeat=0) { if (t->curr_rune == '!') { token->kind = Token_Comment; tokenizer_skip_line(t); + } else if (t->curr_rune == '+') { + token->kind = Token_FileTag; + + // Skip until end of line or until we hit what is probably a comment. + // The parsing of tags happens in `parse_file`. + while (t->curr_rune != GB_RUNE_EOF) { + if (t->curr_rune == '\n') { + break; + } + if (t->curr_rune == '/') { + break; + } + advance_to_next_rune(t); + } } break; case '/': |