Rust のパーサコンビネータの combine を使ってみる
こんにちは、 @kz_morita です。
今回は Rust のパーサコンビネータである combine を使ってみたのでメモを残していきます。
combine の使い方 Carto.toml に以下のように記載し使用します。
[dependencies] combine = "4.5.2" 公式にあるサンプルコードを以下に記載しつつ内容を見ていきます。
https://github.com/Marwes/combine externcratecombine;usecombine::{many1,Parser,sep_by};usecombine::parser::char::{letter,space};// Construct a parser that parses *many* (and at least *1) *letter*s letword=many1(letter());// Construct a parser that parses many *word*s where each word is *separated by* a (white)*space* letmutparser=sep_by(word,space())// Combine can collect into any type implementing `Default + Extend` so we need to assist rustc // by telling it that `sep_by` should collect into a `Vec` and `many1` should collect to a `String` .