aboutsummaryrefslogtreecommitdiff
path: root/src/tomo.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-10-18 14:29:42 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-10-18 14:29:42 -0400
commit6d4af711c1d18885c94d73110d787c503ebac076 (patch)
tree0f0e0fc60915d2c26ec97eca985fe1e418e6c4a9 /src/tomo.c
parent5a26b365fc732c0873474371880b43fc9e843e4b (diff)
Overhaul of CLI arg parsing logic
Diffstat (limited to 'src/tomo.c')
-rw-r--r--src/tomo.c53
1 files changed, 20 insertions, 33 deletions
diff --git a/src/tomo.c b/src/tomo.c
index 46076ba2..a87baf85 100644
--- a/src/tomo.c
+++ b/src/tomo.c
@@ -205,39 +205,26 @@ int main(int argc, char *argv[]) {
TOMO_PATH, "/share/tomo_" TOMO_VERSION "/installed\n");
Text_t help = Texts(Text("\x1b[1mtomo\x1b[m: a compiler for the Tomo programming language"), Text("\n\n"), usage);
tomo_parse_args(argc, argv, usage, help, TOMO_VERSION, //
- {"files", true, List$info(&Path$info), &files}, //
- {"args", true, List$info(&Text$info), &args}, //
- {"verbose", false, &Bool$info, &verbose}, //
- {"v", false, &Bool$info, &verbose}, //
- {"version", false, &Bool$info, &show_version}, //
- {"parse", false, &Bool$info, &show_parse_tree}, //
- {"p", false, &Bool$info, &show_parse_tree}, //
- {"format", false, &Bool$info, &do_format_code}, //
- {"format-inplace", false, &Bool$info, &format_inplace}, //
- {"prefix", false, &Bool$info, &show_prefix}, //
- {"quiet", false, &Bool$info, &quiet}, //
- {"q", false, &Bool$info, &quiet}, //
- {"transpile", false, &Bool$info, &stop_at_transpile}, //
- {"t", false, &Bool$info, &stop_at_transpile}, //
- {"compile-obj", false, &Bool$info, &stop_at_obj_compilation}, //
- {"c", false, &Bool$info, &stop_at_obj_compilation}, //
- {"compile-exe", false, &Bool$info, &compile_exe}, //
- {"e", false, &Bool$info, &compile_exe}, //
- {"uninstall", false, List$info(&Text$info), &uninstall}, //
- {"u", false, List$info(&Text$info), &uninstall}, //
- {"library", false, List$info(&Path$info), &libraries}, //
- {"L", false, List$info(&Path$info), &libraries}, //
- {"show-codegen", false, &Text$info, &show_codegen}, //
- {"C", false, &Text$info, &show_codegen}, //
- {"install", false, &Bool$info, &should_install}, //
- {"I", false, &Bool$info, &should_install}, //
- {"optimization", false, &Text$info, &optimization}, //
- {"O", false, &Text$info, &optimization}, //
- {"force-rebuild", false, &Bool$info, &clean_build}, //
- {"f", false, &Bool$info, &clean_build}, //
- {"source-mapping", false, &Bool$info, &source_mapping},
- {"m", false, &Bool$info, &source_mapping}, //
- {"changelog", false, &Bool$info, &show_changelog}, );
+ {"files", '\0', true, List$info(&Path$info), &files}, //
+ {"args", '\0', false, List$info(&Text$info), &args}, //
+ {"verbose", 'v', false, &Bool$info, &verbose}, //
+ {"version", 'V', false, &Bool$info, &show_version}, //
+ {"parse", 'p', false, &Bool$info, &show_parse_tree}, //
+ {"format", '\0', false, &Bool$info, &do_format_code}, //
+ {"format-inplace", '\0', false, &Bool$info, &format_inplace}, //
+ {"prefix", '\0', false, &Bool$info, &show_prefix}, //
+ {"quiet", 'q', false, &Bool$info, &quiet}, //
+ {"transpile", 't', false, &Bool$info, &stop_at_transpile}, //
+ {"compile-obj", 'c', false, &Bool$info, &stop_at_obj_compilation}, //
+ {"compile-exe", 'e', false, &Bool$info, &compile_exe}, //
+ {"uninstall", 'u', false, List$info(&Text$info), &uninstall}, //
+ {"library", 'L', false, List$info(&Path$info), &libraries}, //
+ {"show-codegen", 'C', false, &Text$info, &show_codegen}, //
+ {"install", 'I', false, &Bool$info, &should_install}, //
+ {"optimization", 'O', false, &Text$info, &optimization}, //
+ {"force-rebuild", 'f', false, &Bool$info, &clean_build}, //
+ {"source-mapping", 'm', false, &Bool$info, &source_mapping},
+ {"changelog", '\0', false, &Bool$info, &show_changelog}, );
if (show_prefix) {
print(TOMO_PATH);