aboutsummaryrefslogtreecommitdiff
path: root/nextlang.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-02-17 14:53:10 -0500
committerBruce Hill <bruce@bruce-hill.com>2024-02-17 14:53:10 -0500
commit58a0b6c6e1d9712fc794be46a2344aab58f06b0e (patch)
tree39780459e2444a1d3e34c99c46715fa84f079a4a /nextlang.c
parent5d2d54ae0ebad9b7e2314735ba89b8e09b4ab147 (diff)
Fix up some cord stuff in main program compilation
Diffstat (limited to 'nextlang.c')
-rw-r--r--nextlang.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/nextlang.c b/nextlang.c
index 152c7b65..0c23cde3 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");