So erstellen Sie ein Array mit Bison / Yacc und einer rekursiven Regel

Mit Bison habe ich herausgefunden, wie ich alles in eine lange Saite packen kann:

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

und:

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

Aber das Problem ist, dass ich dann in der zweiten Regel noch einmal $ 2 aufteilen muss, um es zu analysieren. Gibt es eine Möglichkeit, ein Array zu füllen, anstatt nur die Verkettung zu verwenden? Gehe ich das falsch an?

Wenn ich so etwas wie eine verknüpfte Liste erstellen muss, die sinnvoll sein könnte, bin ich mir nur nicht sicher, wie ich mich richtig an arg_list binden und dann den Speicher aufräumen soll.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage