Jak zbudować tablicę z Bison / Yacc i regułą rekurencyjną

Z Bisonem odkryłem, jak uzyskać wszystko w jeden długi ciąg w następujący sposób:

arg_list:
    WORD arg_list { strcat( $1, "IFS" ); $ = strcat($1, $2); }  |
    WORD
    ;

i:

WORD arg_list { printf("%s, %s\n", $1, $2); }

Ale problem polega na tym, że będę musiał ponownie rozdzielić 2 $ w drugiej regule, aby go przeanalizować. Czy istnieje sposób na zapełnienie tablicy zamiast użycia konkatenacji? Czy to nie tak?

Jeśli muszę zbudować coś w rodzaju listy połączonej, która może mieć sens, po prostu nie wiem, jaki byłby właściwy sposób powiązania z arg_list, a następnie wyczyścić pamięć.

questionAnswers(2)

yourAnswerToTheQuestion