aboutsummaryrefslogtreecommitdiffhomepage
path: root/lex.c
diff options
context:
space:
mode:
author lemon<lsof@mailbox.org>2025-09-09 20:01:43 +0200
committer lemon<lsof@mailbox.org>2025-09-09 20:01:43 +0200
commit59c9eb2a0766bdb7b1c1b1a2045f5381111771e5 (patch)
treebfe2dd9b144cefdbc8440ed491c152bb34317b77 /lex.c
parent9e787ddc2e6d6882776b015bcd561f1e23b9c1ee (diff)
cpp: fix #conditional;s
Diffstat (limited to 'lex.c')
-rw-r--r--lex.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/lex.c b/lex.c
index 547e018..a0206aa 100644
--- a/lex.c
+++ b/lex.c
@@ -1191,22 +1191,26 @@ lex(struct lexer *lx, struct token *tk_)
case PPELIF: ppelif(lx, &tk->span); break;
case PPELIFDEF: ppelifxdef(lx, 1, &tk->span); break;
case PPELIFNDEF: ppelifxdef(lx, 0, &tk->span); break;
- case PPENDIF: ppendif(lx, &tk->span); break;
case PPELSE: ppelse(lx, &tk->span); break;
- case PPINCLUDE: ppinclude(lx, &tk->span); break;
+ case PPENDIF: ppendif(lx, &tk->span); break;
+ case PPINCLUDE: ppinclude(lx, &tk->span); break;
default: assert(0&&"nyi");
}
} else {
switch (findppcmd(tk)) {
case PPIF: /* increment nesting level */
+ case PPIFDEF:
+ case PPIFNDEF:
assert(nppcnd < arraylength(ppcndstk) && "too many nested #if");
ppcndstk[nppcnd].ifspan = tk->span.sl;
ppcndstk[nppcnd].cnd = PPCNDTAKEN;
ppcndstk[nppcnd++].elsep = 0;
break;
- case PPELIF: ppelif(lx, &tk->span); break;
- case PPENDIF: ppendif(lx, &tk->span); break;
- case PPELSE: ppelse(lx, &tk->span); break;
+ case PPELIF: ppelif(lx, &tk->span); break;
+ case PPELIFDEF: ppelifxdef(lx, 1, &tk->span); break;
+ case PPELIFNDEF: ppelifxdef(lx, 0, &tk->span); break;
+ case PPELSE: ppelse(lx, &tk->span); break;
+ case PPENDIF: ppendif(lx, &tk->span); break;
default: ppskipline(lx); break;
}
}