is there any issues with my code?
Rule *parse_file(FILE *fp) {
    Rule *rules = NULL;
    char line[MAXLINE];
    Rule *currParent = NULL;
    while (fgets(line, sizeof(line) - 1, fp)) {
        line[strlen(line) - 1] = '\0';
        char *token;
        if (strchr(line, '#') != NULL) {
            line[strlen(line) - strlen(strchr(line, '#'))] = '\0';
        }
        token = strtok(line, " ");
        if (token == NULL | strcmp(token, "\n") == 0) {
        } else {
            char *newTarget = token;
            token = strtok(NULL, line);
            if (strcmp(token, ":") == 0) {
                Rule *parent = create_rule(rules, newTarget);
                currParent = parent;
                while (token != NULL) {
                    create_dependancy(rules, parent, token);
                    token = strtok(NULL, line);
                }
            } else {
                if (currParent == NULL) {
                    printf("error: action line leading file without respective target line");
                    exit(1);
                }
                Action *actionCurr = currParent->actions;
                while (actionCurr != NULL) {
                    actionCurr = actionCurr->next_act;
                }
                Action *newAction = malloc(sizeof(Action));
                newAction->next_act = NULL;
                newAction->args[0] = newTarget;
                int i = 0;
                while (token != NULL) {
                    newAction->args[i] = token;
                    i += 1;
                    token = strtok(NULL, line);
                }
                newAction->args[i] = NULL;
                actionCurr = newAction;
            }
        }
    }
    return rules;
}