From 696b6dae571065d10e1ee54f4d5b41325352b303 Mon Sep 17 00:00:00 2001 From: Fabrice Date: Tue, 3 Mar 2026 17:43:31 +0100 Subject: adding more tokens --- src/token.cc | 9 ++++++++- src/tokenizer.cc | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/token.cc b/src/token.cc index bac5a5a..171f7ee 100644 --- a/src/token.cc +++ b/src/token.cc @@ -11,7 +11,14 @@ X(Invalid_Literal) \ X(Identifier) -#define TOKEN_KINDS_SLEX X(Hash, '#') +#define TOKEN_KINDS_SLEX \ + X(Hash, '#') \ + X(LBrace, '{') \ + X(RBrace, '}') \ + X(LParen, '(') \ + X(RParen, ')') \ + X(LBracket, '[') \ + X(RBracket, ']') #define TOKEN_KIND(name) Token_Kind_##name diff --git a/src/tokenizer.cc b/src/tokenizer.cc index c3889b9..6a31ff6 100644 --- a/src/tokenizer.cc +++ b/src/tokenizer.cc @@ -112,6 +112,12 @@ bool tokenizer_next(Tokenizer* tokenizer, Token* out) { } switch (c) { +#define X(name, lex) \ + case lex: \ + *out = tokenizer_make_token(tokenizer, TOKEN_KIND(name), cursor, advance); + + TOKEN_KINDS_SLEX; +#undef X default: *out = tokenizer_make_token(tokenizer, Token_Kind_Invalid_Char, cursor, advance); -- cgit v1.2.3