diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-07-29 08:51:00 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-15 10:04:36 +0900 |
| commit | f30a6e048ccadd33c889caaa8012cfabfd5c2da9 (patch) | |
| tree | d64763931b2013024feb8505785840d47c51a03f /tokenize.c | |
| parent | bfd0e04870c7cc55e8c2a9ee5e7b3e39fc9286c2 (diff) | |
| download | ducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.tar.gz ducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.tar.zst ducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.zip | |
feat: implement bitwise or
Diffstat (limited to 'tokenize.c')
| -rw-r--r-- | tokenize.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -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, "&")) { |
