aboutsummaryrefslogtreecommitdiff
path: root/compile.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-09-28 15:17:09 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-09-28 15:17:09 -0400
commit23af8b64a3f924f3eed3307735e1041b72f32c1f (patch)
treec9bdd4ad4f9152e134afc4c0f1713425d4361d85 /compile.c
parent566356d82ed97c274b7985cafdce6704520c8ff0 (diff)
Overhaul of argument parsing code
Diffstat (limited to 'compile.c')
-rw-r--r--compile.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/compile.c b/compile.c
index d7dcd3ad..b554afc9 100644
--- a/compile.c
+++ b/compile.c
@@ -3548,15 +3548,14 @@ CORD compile_cli_arg_call(env_t *env, CORD fn_name, type_t *fn_type)
num_args += 1;
}
- code = CORD_all(code, "tomo_parse_args(", usage_code, ", ", help_code, ", ",
- heap_strf("%d", num_args), ", (cli_arg_t[]){");
+ code = CORD_all(code, "tomo_parse_args(argc, argv, ", usage_code, ", ", help_code);
for (arg_t *arg = fn_info->args; arg; arg = arg->next) {
- code = CORD_all(code, "{", CORD_quoted(CORD_replace(arg->name, "_", "-")), ", ",
+ code = CORD_all(code, ",\n{", CORD_quoted(CORD_replace(arg->name, "_", "-")), ", ",
(arg->default_val || arg->type->tag == OptionalType) ? "false" : "true", ", ",
compile_type_info(env, arg->type),
- ", &", CORD_all("$", arg->name), "}, ");
+ ", &", CORD_all("$", arg->name), "}");
}
- code = CORD_all(code, "}, argc, argv);\n");
+ code = CORD_all(code, ");\n");
code = CORD_all(code, fn_name, "(");
for (arg_t *arg = fn_info->args; arg; arg = arg->next) {