aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/preprocess.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-29 21:25:03 +0900
committernsfisis <nsfisis@gmail.com>2025-08-29 21:49:56 +0900
commitb678465c11517a5342b1ec5aa4fe21570f13a3ed (patch)
tree6ef19e02b1cf18f5ac451e6104f6e20b475a6f52 /src/preprocess.c
parent8f352553faec69a6f29854898b93be47604aff28 (diff)
downloadducc-b678465c11517a5342b1ec5aa4fe21570f13a3ed.tar.gz
ducc-b678465c11517a5342b1ec5aa4fe21570f13a3ed.tar.zst
ducc-b678465c11517a5342b1ec5aa4fe21570f13a3ed.zip
feat: add utility function to dump any internal object as JSON
Diffstat (limited to 'src/preprocess.c')
-rw-r--r--src/preprocess.c39
1 files changed, 3 insertions, 36 deletions
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 &macros->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 = &macros->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));