From b678465c11517a5342b1ec5aa4fe21570f13a3ed Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 29 Aug 2025 21:25:03 +0900 Subject: feat: add utility function to dump any internal object as JSON --- src/preprocess.c | 39 +++------------------------------------ 1 file changed, 3 insertions(+), 36 deletions(-) (limited to 'src/preprocess.c') diff --git a/src/preprocess.c b/src/preprocess.c index 3c71a53..fdc64d9 100644 --- a/src/preprocess.c +++ b/src/preprocess.c @@ -77,22 +77,6 @@ static Macro* macros_push_new(MacroArray* macros) { return ¯os->data[macros->len++]; } -static void macros_dump(MacroArray* macros) { - fprintf(stderr, "MacroArray {\n"); - fprintf(stderr, " len = %zu\n", macros->len); - fprintf(stderr, " data = [\n"); - for (int i = 0; i < macros->len; ++i) { - Macro* m = ¯os->data[i]; - fprintf(stderr, " Macro {\n"); - fprintf(stderr, " kind = %s\n", macro_kind_stringify(m->kind)); - fprintf(stderr, " name = %s\n", m->name); - fprintf(stderr, " replacements = TODO\n"); - fprintf(stderr, " }\n"); - } - fprintf(stderr, " ]\n"); - fprintf(stderr, "}\n"); -} - static void add_predefined_macros(MacroArray* macros) { Macro* m; @@ -875,19 +859,11 @@ static BOOL preprocess_if_group_or_elif_group(Preprocessor* pp, int directive_to Token* macro_name; if (consume_pp_token_if(pp, TokenKind_paren_l)) { skip_whitespaces(pp); - macro_name = next_pp_token(pp); - if (macro_name->kind != TokenKind_ident) { - fatal_error("invalid defined"); - } + macro_name = expect_pp_token(pp, TokenKind_ident); skip_whitespaces(pp); - if (next_pp_token(pp)->kind != TokenKind_paren_r) { - fatal_error("invalid defined"); - } + expect_pp_token(pp, TokenKind_paren_r); } else { - macro_name = next_pp_token(pp); - if (macro_name->kind != TokenKind_ident) { - fatal_error("invalid defined"); - } + macro_name = expect_pp_token(pp, TokenKind_ident); } BOOL is_defined = find_macro(pp, macro_name->value.string) != -1; TokenArray defined_results; @@ -1249,15 +1225,6 @@ static void remove_pp_directives(Preprocessor* pp) { } } -static void pp_dump(Token* t, BOOL include_whitespace) { - for (; t->kind != TokenKind_eof; ++t) { - if (t->kind == TokenKind_whitespace && !include_whitespace) { - continue; - } - fprintf(stderr, "%s\n", token_stringify(t)); - } -} - static char* get_ducc_include_path() { const char* self_dir = get_self_dir(); char* buf = calloc(strlen(self_dir) + strlen("/../include") + 1, sizeof(char)); -- cgit v1.2.3-70-g09d2