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 /preprocess.c | |
| parent | bfd0e04870c7cc55e8c2a9ee5e7b3e39fc9286c2 (diff) | |
| download | ducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.tar.gz ducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.tar.zst ducc-f30a6e048ccadd33c889caaa8012cfabfd5c2da9.zip | |
feat: implement bitwise or
Diffstat (limited to 'preprocess.c')
| -rw-r--r-- | preprocess.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/preprocess.c b/preprocess.c index 4ffe12e..7fa98f3 100644 --- a/preprocess.c +++ b/preprocess.c @@ -146,10 +146,16 @@ void pp_tokenize_all(Preprocessor* pp) { tok->raw.data = pp->src + pp->pos - tok->raw.len; } } else if (c == '|') { - ++pp->pos; - tok->kind = PpTokenKind_punctuator; - tok->raw.len = 2; - tok->raw.data = pp->src + pp->pos - tok->raw.len; + if (pp->src[pp->pos] == '|') { + ++pp->pos; + tok->kind = PpTokenKind_punctuator; + tok->raw.len = 2; + tok->raw.data = pp->src + pp->pos - tok->raw.len; + } else { + tok->kind = PpTokenKind_punctuator; + tok->raw.len = 1; + tok->raw.data = pp->src + pp->pos - tok->raw.len; + } } else if (c == '&') { if (pp->src[pp->pos] == '&') { ++pp->pos; |
