Bison を使用して、次のようにすべてを 1 つの長い文字列にまとめる方法を見つけました。
arg_list:
WORD arg_list { strcat( $1, "IFS" ); $$ = strcat($1, $2); } |
WORD
;
と:
WORD arg_list { printf("%s, %s\n", $1, $2); }
しかし、問題は、2 番目のルールで $2 を再度分割して解析する必要があることです。連結を使用する代わりに配列を設定する方法はありますか? 私はこれについて間違った方法で進んでいますか?
理にかなっているリンクされたリストのようなものを構築する必要がある場合は、arg_list にバインドしてメモリをクリーンアップする適切な方法がわからないだけです。