Connect the linked list
                    char *sub_token;
                    sub_token = strtok(token, " \t"); // gets rid of the tab so we can only tokenize just the words
                    
                    curr_action = curr_rule->actions;
                    num = 0;

                    // Count number of sub_tokens there are and store the sub tokens in a temporary array.
                    while (sub_token != NULL) { 
                        // printf("%s\n", sub_token);
                        temp_array[num] = malloc(sizeof(char) * (strlen(sub_token) + 1));
                        if (temp_array[num] == NULL) {
                            perror("malloc");
                            exit(1);
                        }
                        strcpy(temp_array[num], sub_token);
                        num += 1;
                        sub_token = strtok(NULL, " ");
                    }
                    if (sub_token == NULL) { 
                        // Initalize curr_action and args and then put all sub tokens in it 
                        // Check if Action has been initalized for this rule
                        if (curr_action != NULL) { // If current action exists, make a new action and set current action to it
                            curr_action->next_act = malloc(sizeof(Action)); 
                            curr_action = curr_action->next_act;
                        }
                        else { // If current action doesn't exist, this means we need to initalize the first action and set it to be the current action
                            curr_rule->actions = malloc(sizeof(Action));
                            curr_action = curr_rule->actions;
                        }
                        // Copy arguments from temp array to curr_action->args
                        curr_action->args = malloc(sizeof(char *) * (num + 1));
                        for (int i = 0; i < num; i++) { 
                            curr_action->args[i] = malloc(sizeof(char) * (strlen(temp_array[i]) + 1));
                            if (curr_action->args[i] == NULL) {
                                perror("malloc");
                                exit(1);
                            }
                            strcpy(curr_action->args[i], temp_array[i]);
                        }
                    }