This code is meant to tokenize a word off spaces and build a list of rules and dependencies. Currently, it only does one iteration
char *dep = strtok(NULL, " ");  
            Rule *rule_adder = curr;
            Dependency *curr_dep; 
            while (dep != NULL) {
                
                // Allocate space for the dependency
                Dependency *new_dep = malloc(sizeof(Dependency));

                if (rule_adder->dependencies == NULL) {
                    rule_adder->dependencies = new_dep;
                    curr_dep = rule_adder->dependencies;
                } else {
                    curr_dep->next_dep = new_dep;
                    curr_dep = curr_dep->next_dep;
                }
                
                // Create the corresponding Rule 
                curr_dep->rule = malloc(sizeof(Rule));
                curr_dep->rule->target = malloc(strlen(dep) + 1);
                strncpy(curr_dep->rule->target, dep, strlen(dep));
                
                // Initialize all other fields to NULL
                curr_dep->rule->actions = NULL;
                curr_dep->rule->dependencies = NULL;
                curr_dep->rule->next_rule = NULL;

                // Add the rule to the chain
                rule_adder->next_rule = curr_dep->rule;
                rule_adder = rule_adder->next_rule;

                dep = strtok(NULL, " ");

                curr_dep->next_dep = NULL;
            }