pub trait ParserExt<I: Input>: Parser<I> + Sized {
Show 18 methods
// Provided methods
fn map<F, O2>(self, f: F) -> Map<Self, F>
where F: FnMut(Self::Output) -> O2 { ... }
fn zip<P2>(self, rhs: P2) -> Zip<Self, P2>
where P2: Parser<I, Error = Self::Error> { ... }
fn zip_left<P2>(self, rhs: P2) -> ZipLeft<Self, P2>
where P2: Parser<I, Error = Self::Error> { ... }
fn zip_right<P2>(self, rhs: P2) -> ZipRight<Self, P2>
where P2: Parser<I, Error = Self::Error> { ... }
fn or<P2>(self, rhs: P2) -> Or<Self, P2>
where Self::Error: MergeError,
P2: Parser<I, Output = Self::Output, Error = Self::Error> { ... }
fn attempt(self) -> Attempt<Self> { ... }
fn cut(self) -> Cut<Self> { ... }
fn optional(self) -> Optional<Self> { ... }
fn many0(self) -> Many<Self> { ... }
fn many1(self) -> Many1<Self> { ... }
fn context(self, label: &'static str) -> Context<Self>
where Self::Error: ContextError { ... }
fn sep_by0<S>(self, sep: S) -> SepBy0<Self, S>
where S: Parser<I, Error = Self::Error> { ... }
fn sep_by1<S>(self, sep: S) -> SepBy1<Self, S>
where S: Parser<I, Error = Self::Error> { ... }
fn chainl1<Op, F>(self, op: Op) -> ChainL1<Self, Op>
where Op: Parser<I, Output = F, Error = Self::Error>,
F: FnMut(Self::Output, Self::Output) -> Self::Output { ... }
fn chainr1<Op, F>(self, op: Op) -> ChainR1<Self, Op>
where Op: Parser<I, Output = F, Error = Self::Error>,
F: FnMut(Self::Output, Self::Output) -> Self::Output { ... }
fn map_res<F, O2, E2>(self, f: F, label: &'static str) -> MapRes<Self, F>
where Self: Parser<I, Error = ParseError>,
F: FnMut(Self::Output) -> Result<O2, E2> { ... }
fn flat_map<F, P2>(self, f: F) -> FlatMap<Self, F>
where P2: Parser<I, Error = Self::Error>,
F: FnMut(Self::Output) -> P2 { ... }
fn and_then<F, P2>(self, f: F) -> FlatMap<Self, F>
where P2: Parser<I, Error = Self::Error>,
F: FnMut(Self::Output) -> P2 { ... }
}Provided Methods§
fn map<F, O2>(self, f: F) -> Map<Self, F>
fn zip<P2>(self, rhs: P2) -> Zip<Self, P2>
fn or<P2>(self, rhs: P2) -> Or<Self, P2>
fn attempt(self) -> Attempt<Self>
fn cut(self) -> Cut<Self>
fn optional(self) -> Optional<Self>
fn many0(self) -> Many<Self>
fn many1(self) -> Many1<Self>
Sourcefn context(self, label: &'static str) -> Context<Self>where
Self::Error: ContextError,
fn context(self, label: &'static str) -> Context<Self>where
Self::Error: ContextError,
エラーにコンテキストラベルを付与する。
Sourcefn chainl1<Op, F>(self, op: Op) -> ChainL1<Self, Op>
fn chainl1<Op, F>(self, op: Op) -> ChainL1<Self, Op>
左結合の二項演算子チェーン。operand (op operand)* を左から畳む。
Sourcefn chainr1<Op, F>(self, op: Op) -> ChainR1<Self, Op>
fn chainr1<Op, F>(self, op: Op) -> ChainR1<Self, Op>
右結合の二項演算子チェーン。operand (op operand)* を右から畳む。
Sourcefn map_res<F, O2, E2>(self, f: F, label: &'static str) -> MapRes<Self, F>
fn map_res<F, O2, E2>(self, f: F, label: &'static str) -> MapRes<Self, F>
パーサーの結果を失敗しうる関数で変換する。
関数が Err を返した場合、Backtrack エラーになる。
入力は巻き戻さない(巻き戻したい場合は .attempt() と組み合わせる)。
fn flat_map<F, P2>(self, f: F) -> FlatMap<Self, F>
fn and_then<F, P2>(self, f: F) -> FlatMap<Self, F>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.