Struct branchy::Expander [−][src]
pub struct Expander<Nt, T, RS, EL> where
RS: RuleSelector<Nt, T>,
EL: ExpansionLogger<Nt, T>, { /* fields omitted */ }
Expand description
Provides expand()
method
to perform the expansion of the input sequence.
Can be constructed using ExpanderBuilder
.
Implementations
impl<Nt, T, RS, EL> Expander<Nt, T, RS, EL> where
Nt: NonterminalValue,
T: TerminalValue,
RS: RuleSelector<Nt, T>,
EL: ExpansionLogger<Nt, T>,
[src]
impl<Nt, T, RS, EL> Expander<Nt, T, RS, EL> where
Nt: NonterminalValue,
T: TerminalValue,
RS: RuleSelector<Nt, T>,
EL: ExpansionLogger<Nt, T>,
[src]pub fn expand(&mut self, input: Vec<Symbol<Nt, T>>) -> Result<Nt, T>
[src]
pub fn expand(&mut self, input: Vec<Symbol<Nt, T>>) -> Result<Nt, T>
[src]Expands the input
sequence using the Rule
s and
RuleSelector
which were specified for this Expander
via ExpanderBuilder
.
Returns a Result
which contains the resulting sequence of
terminal symbol values on success or an appropriate Error
on failure.
Errors
Will result in an Error
if there is no matching rule to expand a non-terminal symbol or
if the maximum number of iterations has been reached while there are still non-terminal symbols left.
Auto Trait Implementations
impl<Nt, T, RS, EL> RefUnwindSafe for Expander<Nt, T, RS, EL> where
EL: RefUnwindSafe,
Nt: RefUnwindSafe,
RS: RefUnwindSafe,
T: RefUnwindSafe,
EL: RefUnwindSafe,
Nt: RefUnwindSafe,
RS: RefUnwindSafe,
T: RefUnwindSafe,
impl<Nt, T, RS, EL> Send for Expander<Nt, T, RS, EL> where
EL: Send,
Nt: Send,
RS: Send,
T: Send,
EL: Send,
Nt: Send,
RS: Send,
T: Send,
impl<Nt, T, RS, EL> Sync for Expander<Nt, T, RS, EL> where
EL: Sync,
Nt: Sync,
RS: Sync,
T: Sync,
EL: Sync,
Nt: Sync,
RS: Sync,
T: Sync,
impl<Nt, T, RS, EL> Unpin for Expander<Nt, T, RS, EL> where
EL: Unpin,
Nt: Unpin,
RS: Unpin,
T: Unpin,
EL: Unpin,
Nt: Unpin,
RS: Unpin,
T: Unpin,
impl<Nt, T, RS, EL> UnwindSafe for Expander<Nt, T, RS, EL> where
EL: UnwindSafe,
Nt: UnwindSafe,
RS: UnwindSafe,
T: UnwindSafe,
EL: UnwindSafe,
Nt: UnwindSafe,
RS: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,