why is this not printing the head->target?
while (fgets(line, MAXLINE, fp) != NULL) {
    line[MAXLINE - 1] = '\n';

    if (is_comment_or_empty(line) != 1) {
        char *token;
        token = strtok(line, " ");

        while (token != NULL) {
            if (token[0] != '\t' && token[0] != '\n') {
                if (head == NULL) {
                    head = malloc(sizeof(Rule));
                    head->target = strdup(token);
                    head->dependencies = NULL;
                    head->actions = NULL;
                    head->next_rule = NULL;
                }
            }
            token = strtok(NULL, " ");
        }
    }
}
printf("%s\n", head->target);
}