С 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, а затем очистить память.