From: ahmedsamyh Date: Sat, 1 Mar 2025 12:03:43 +0000 (+0500) Subject: [main.c] Accept flags (WIP) X-Git-Url: https://www.git.momoyon.org/?a=commitdiff_plain;h=ba9595b71c9e6bfbe5d329ea17e72f1fd365ffaa;p=lang.git [main.c] Accept flags (WIP) --- diff --git a/main.c b/main.c index fbd0877..1b4f1cc 100644 --- a/main.c +++ b/main.c @@ -674,17 +674,39 @@ Tokens lex(Lexer *l) { return tokens; } + +typedef struct { + const char **items; + size_t count; + size_t capacity; +} Flags; + int main(int argc, char **argv) { const char *program = shift_args(argv, argc); - if (argc <= 0) { + Flags flags = {0}; + + const char *filename = NULL; + while (argc > 0) { + const char *arg = shift_args(argv, argc); + + if (*arg == '-' || *arg == '/') { + char prefix = *arg; + const char *flag = arg + 1; + + da_append(flags, flag); + } else { + filename = arg; + } + } + + if (filename == NULL) { error("Please provide a filename!"); usage(program); + da_free(flags); return 1; } - const char *filename = shift_args(argv, argc); - Lexer l = make_lexer(filename); Tokens tokens = lex(&l); @@ -694,5 +716,7 @@ int main(int argc, char **argv) { free_lexer(&l); da_free(tokens); + + da_free(flags); return 0; }