pub struct NFA<A: Atom> { /* private fields */ }Implementations§
Source§impl<A: Atom> NFA<A>
impl<A: Atom> NFA<A>
pub fn assemble(ast: Option<&ASTNode<A>>) -> Result<NFA<A>, FAAssembleError>
Sourcepub fn is_deterministic(&self) -> bool
pub fn is_deterministic(&self) -> bool
Check whether all transitions in this NFA are deterministic.
This method can be used to check for ambiguities in the element content model.
If true, you can expect that converting to a DFA will not significantly increase
the number of states.
Sourcepub fn initial_state(&self) -> State<A>
pub fn initial_state(&self) -> State<A>
Returns the initial state.
Sourcepub fn transition(
&self,
initial_states: impl Iterator<Item = State<A>>,
input: impl Iterator<Item = A>,
) -> Result<Vec<State<A>>, TransitionError>
pub fn transition( &self, initial_states: impl Iterator<Item = State<A>>, input: impl Iterator<Item = A>, ) -> Result<Vec<State<A>>, TransitionError>
Returns the destination state when input is entered,
using initial_states as the initial states.
initial_state does not need to be a state generated by NFA::initial_state;
it can also be a state generated by DFA::transition, etc.
For example, you can use this when you want to enter a chunked string little by little.
Sourcepub fn is_accepted(&self, state: State<A>) -> bool
pub fn is_accepted(&self, state: State<A>) -> bool
Check if the given state is an accepted state.
If the given state is not generated from this DFA, always return false.
Trait Implementations§
Auto Trait Implementations§
impl<A> Freeze for NFA<A>
impl<A> RefUnwindSafe for NFA<A>where
A: RefUnwindSafe,
impl<A> Send for NFA<A>where
A: Send,
impl<A> Sync for NFA<A>where
A: Sync,
impl<A> Unpin for NFA<A>where
A: Unpin,
impl<A> UnwindSafe for NFA<A>where
A: UnwindSafe,
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