aboutsummaryrefslogtreecommitdiffhomepage
path: root/preprocess.c
diff options
context:
space:
mode:
Diffstat (limited to 'preprocess.c')
-rw-r--r--preprocess.c14
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;