summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-03-03 17:43:31 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-03-03 17:43:31 +0100
commit696b6dae571065d10e1ee54f4d5b41325352b303 (patch)
treec059e7e95277075482b46e7b2c645a53e45d9ff9 /src
parente1213296170329bdd5112cfd2644f916547ee95d (diff)
adding more tokens
Diffstat (limited to 'src')
-rw-r--r--src/token.cc9
-rw-r--r--src/tokenizer.cc6
2 files changed, 14 insertions, 1 deletions
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);