aboutsummaryrefslogtreecommitdiffhomepage
path: root/preprocess.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-02 00:34:45 +0900
committernsfisis <nsfisis@gmail.com>2025-08-15 10:06:21 +0900
commit0b55f60c77e181e61dd84bf6da3416bb88488116 (patch)
tree4885ce30706f3a16b5f2b91dc58426772eea8285 /preprocess.c
parentadf26a24a7e63a6c1061c107ce60a384eb6500c7 (diff)
downloadducc-0b55f60c77e181e61dd84bf6da3416bb88488116.tar.gz
ducc-0b55f60c77e181e61dd84bf6da3416bb88488116.tar.zst
ducc-0b55f60c77e181e61dd84bf6da3416bb88488116.zip
feat: implement multi-line comment
Diffstat (limited to 'preprocess.c')
-rw-r--r--preprocess.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/preprocess.c b/preprocess.c
index b43732b..36885ab 100644
--- a/preprocess.c
+++ b/preprocess.c
@@ -320,7 +320,18 @@ void pp_tokenize_all(Preprocessor* pp) {
tok->raw.len = pp->pos - start;
tok->raw.data = pp->src + pp->pos - tok->raw.len;
} else if (pp->src[pp->pos] == '*') {
- unimplemented();
+ start = pp->pos - 1;
+ ++pp->pos;
+ while (pp->src[pp->pos]) {
+ if (pp->src[pp->pos] == '*' && pp->src[pp->pos + 1] == '/') {
+ pp->pos += 2;
+ break;
+ }
+ ++pp->pos;
+ }
+ tok->kind = PpTokenKind_whitespace;
+ tok->raw.len = pp->pos - start;
+ tok->raw.data = pp->src + pp->pos - tok->raw.len;
} else {
tok->kind = PpTokenKind_punctuator;
tok->raw.len = 1;