pub struct Recursive<'a, O, E> { /* private fields */ }Expand description
再帰パーサー。recursive() で構築する。
再帰の結び目だけ Box<dyn Parser> + Rc で型消去し、
非再帰部分は具象型を維持する。
Trait Implementations§
Auto Trait Implementations§
impl<'a, O, E> Freeze for Recursive<'a, O, E>
impl<'a, O, E> !RefUnwindSafe for Recursive<'a, O, E>
impl<'a, O, E> !Send for Recursive<'a, O, E>
impl<'a, O, E> !Sync for Recursive<'a, O, E>
impl<'a, O, E> Unpin for Recursive<'a, O, E>
impl<'a, O, E> UnsafeUnpin for Recursive<'a, O, E>
impl<'a, O, E> !UnwindSafe for Recursive<'a, O, E>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<I, P> ParserExt<I> for P
impl<I, P> ParserExt<I> for P
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>
Source§fn context(self, label: &'static str) -> Context<Self>where
Self::Error: ContextError,
fn context(self, label: &'static str) -> Context<Self>where
Self::Error: ContextError,
エラーにコンテキストラベルを付与する。
Source§fn chainl1<Op, F>(self, op: Op) -> ChainL1<Self, Op>
fn chainl1<Op, F>(self, op: Op) -> ChainL1<Self, Op>
左結合の二項演算子チェーン。operand (op operand)* を左から畳む。
Source§fn chainr1<Op, F>(self, op: Op) -> ChainR1<Self, Op>
fn chainr1<Op, F>(self, op: Op) -> ChainR1<Self, Op>
右結合の二項演算子チェーン。operand (op operand)* を右から畳む。