]> www.git.momoyon.org Git - lang.git/commitdiff
[main.c] Accept flags (WIP)
authorahmedsamyh <ahmedsamyh10@gmail.com>
Sat, 1 Mar 2025 12:03:43 +0000 (17:03 +0500)
committerahmedsamyh <ahmedsamyh10@gmail.com>
Sat, 1 Mar 2025 12:03:43 +0000 (17:03 +0500)
main.c

diff --git a/main.c b/main.c
index fbd0877418b69dbefa401eed01052d1c24843c31..1b4f1ccc10d716246aca0b3f139b93fbe39e0acc 100644 (file)
--- 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;
 }