まずは int argc, char **argv から、ソルバで使用する int optionid, char *filename を parse する部分。
typedef struct { char *grfile; char *cofile; ... } option;のように出現するファイルタイプをすべて含んだ構造体を定義するか非常に迷ったが、次のようにすることで落ち着いた。
int arg_to_optionid(int argc, char **argv); char *arg_to_filename(int argc, char **argv);というのも、
int parse_graph_file(int grflag, char *grfile, graph *gr);のような関数を思い浮かべたときに、結局は flag を使うことになるからで、一貫性を保つことを考えると後者の方がすっきりしていると感じる。この flag をライブラリ内で統一したものを使用することにしよう。