From 58a0b6c6e1d9712fc794be46a2344aab58f06b0e Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 17 Feb 2024 14:53:10 -0500 Subject: [PATCH] Fix up some cord stuff in main program compilation --- nextlang.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/nextlang.c b/nextlang.c index 152c7b6..0c23cde 100644 --- a/nextlang.c +++ b/nextlang.c @@ -54,17 +54,19 @@ int main(int argc, char *argv[]) CORD_appendf(&env->main, "%r\n", code); } - CORD program = CORD_asprintf( - "#line 0 \"%s\"\n" // file - "// Generated code:\n" - "%r\n" // imports - "%r\n" // typedefs - "%r\n" // types - "%r\n" // static defs - "%r\n" // funcs +#define CORD_all(...) CORD_catn(sizeof((CORD[]){__VA_ARGS__})/sizeof(CORD), __VA_ARGS__) + CORD fileinfo = CORD_asprintf("#line 0 \"%s\"\n", f->filename); + CORD program = CORD_all( + fileinfo, + "// Generated code:\n", + env->imports, "\n", + env->typedefs, "\n", + env->typecode, "\n", + env->staticdefs, "\n", + env->funcs, "\n" "\n" - "static void $load(void) {\n" - "%r" // main + "static void $load(void) {\n", + env->main, "}\n" "\n" "int main(int argc, const char *argv[]) {\n" @@ -74,10 +76,8 @@ int main(int argc, char *argv[]) "USE_COLOR = getenv(\"COLOR\") ? strcmp(getenv(\"COLOR\"), \"1\") == 0 : isatty(STDOUT_FILENO);\n" "$load();\n" "return 0;\n" - "}\n", - f->filename, - env->imports, env->typedefs, env->types, env->staticdefs, - env->funcs, env->main); + "}\n" + ); if (verbose) { FILE *out = popen(heap_strf("%s | bat -P --file-name=program.c", autofmt), "w");