Как построить массив с помощью Bison / Yacc и рекурсивного правила

С помощью Bison я понял, как собрать все в одну длинную строку следующим образом:

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

а также:

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

Но проблема в том, что мне придется снова разделить 2 $ во втором правиле, чтобы разобрать его. Есть ли способ заполнить массив вместо просто конкатенации? Я поступаю об этом неправильно?

Если мне нужно создать что-то вроде связанного списка, который может иметь смысл, просто не уверен, что будет правильным способом связать с arg_list, а затем очистить память.

Ответы на вопрос(2)

Ваш ответ на вопрос