diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-08-02 00:34:45 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-15 10:06:21 +0900 |
| commit | 0b55f60c77e181e61dd84bf6da3416bb88488116 (patch) | |
| tree | 4885ce30706f3a16b5f2b91dc58426772eea8285 /preprocess.c | |
| parent | adf26a24a7e63a6c1061c107ce60a384eb6500c7 (diff) | |
| download | ducc-0b55f60c77e181e61dd84bf6da3416bb88488116.tar.gz ducc-0b55f60c77e181e61dd84bf6da3416bb88488116.tar.zst ducc-0b55f60c77e181e61dd84bf6da3416bb88488116.zip | |
feat: implement multi-line comment
Diffstat (limited to 'preprocess.c')
| -rw-r--r-- | preprocess.c | 13 |
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; |
