Support triple backtick strings

This commit is contained in:
gingerBill
2026-08-12 16:08:58 +01:00
parent 5197806f88
commit ae2c7ead48
3 changed files with 83 additions and 46 deletions

View File

@@ -834,6 +834,25 @@ gb_internal void tokenizer_get_token(Tokenizer *t, Token *token, int repeat=0) {
}
}
} else {
if (t->curr_rune == '`' && peek_byte(t, 0) == '`') {
advance_to_next_rune(t); // consume the second opening ```
advance_to_next_rune(t); // consume the third opening ```
for (;;) {
Rune r = t->curr_rune;
if (r < 0) {
tokenizer_err(t, "Triple-quote multi-line string literal not terminated");
break;
}
advance_to_next_rune(t);
if (r == quote && t->curr_rune == '`' && peek_byte(t, 0) == '`') {
advance_to_next_rune(t); // consume the second closing ```
advance_to_next_rune(t); // consume the third closing ```
break;
}
}
token->string.len = t->curr - token->string.text;
goto semicolon_check;
}
for (;;) {
Rune r = t->curr_rune;
if (r < 0) {