パーサーコンビネータ とは、小さなパーサーを 合成(combine) して複雑なパーサーを作り上げていく手法です。この記事では、Rust で簡単なパーサーコンビネータのライブラリを作成し、それを使って JSON をパースすることを目指します。 パーサーコンビネータの使用例 今回作成するパーサーコンビネータを使うと以下のようなコードが書けます。 // カンマ区切りの整数列を受け付けるパーサー let digits_seq = separated(digits, character(',')); // "empty" というキーワードを受け取り、空の Vec を返すパーサー let empty_keyword = map(string("empty"), |_| vec![]); // カンマ区切りの整数列 または "empty" というキーワードを受け付けるパーサー let parser =