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ęć.