aboutsummaryrefslogtreecommitdiffhomepage
path: root/tokenize.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-07-29 08:51:00 +0900
committernsfisis <nsfisis@gmail.com>2025-08-15 10:04:36 +0900
commitf30a6e048ccadd33c889caaa8012cfabfd5c2da9 (patch)
treed64763931b2013024feb8505785840d47c51a03f /tokenize.c
parentbfd0e04870c7cc55e8c2a9ee5e7b3e39fc9286c2 (diff)
downloadducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.tar.gz
ducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.tar.zst
ducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.zip
feat: implement bitwise or
Diffstat (limited to 'tokenize.c')
-rw-r--r--tokenize.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tokenize.c b/tokenize.c
index b6b5233..4d4ed8d 100644
--- a/tokenize.c
+++ b/tokenize.c
@@ -44,6 +44,7 @@ enum TokenKind {
TokenKind_minusminus,
TokenKind_ne,
TokenKind_not,
+ TokenKind_or,
TokenKind_oror,
TokenKind_paren_l,
TokenKind_paren_r,
@@ -154,6 +155,8 @@ const char* token_kind_stringify(TokenKind k) {
return "!=";
else if (k == TokenKind_not)
return "!";
+ else if (k == TokenKind_or)
+ return "|";
else if (k == TokenKind_oror)
return "||";
else if (k == TokenKind_paren_l)
@@ -316,6 +319,8 @@ void tokenize_all(Lexer* l) {
tok->kind = TokenKind_plus;
} else if (string_equals_cstr(&pp_tok->raw, "||")) {
tok->kind = TokenKind_oror;
+ } else if (string_equals_cstr(&pp_tok->raw, "|")) {
+ tok->kind = TokenKind_or;
} else if (string_equals_cstr(&pp_tok->raw, "&&")) {
tok->kind = TokenKind_andand;
} else if (string_equals_cstr(&pp_tok->raw, "&")) {