Как построить массив с помощью 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, а затем очистить память.