Marwes/combine: A parser combinator library for Rust Parsecに影響を受けて作られたパーサコンビネータだそうです。 Rustでパーサコンビネータといえばnomといった風潮ですが、combineはトレイトを中心にしたRustらしい実装であり、マクロでパーサを記述するnomと違ってRustのシンタックスで書けます。 この記事では設定ファイル記述言語であるTOMLで定義されているリテラル数値・文字列の文法を例にパーサを書いてみます。 なお、以下のようなものを自力で実装する必要はあまり無くて、言語実装に必要なパーサはcombine-languageというクレートでもっと網羅的に提供されています。 Parserトレイト combineでは、パーサはParserトレイトを実装した型として表され、コンビネータでParserを組み合わせていくことで大