pub struct SentenceGenerator<'a, StorageT> { /* private fields */ }Expand description
A SentenceGenerator can generate minimal sentences for any given rule. e.g. for the
grammar:
%start A
%%
A: A B | ;
B: C | D;
C: 'x' B | 'x';
D: 'y' B | 'y' 'z';the following are valid minimal sentences:
A: []
B: [x]
C: [x]
D: [y, x] or [y, z]Implementations§
Source§impl<'a, StorageT: 'static + PrimInt + Unsigned> SentenceGenerator<'a, StorageT>where
    usize: AsPrimitive<StorageT>,
 
impl<'a, StorageT: 'static + PrimInt + Unsigned> SentenceGenerator<'a, StorageT>where
    usize: AsPrimitive<StorageT>,
Sourcepub fn min_sentence_cost(&self, ridx: RIdx<StorageT>) -> u16
 
pub fn min_sentence_cost(&self, ridx: RIdx<StorageT>) -> u16
What is the cost of a minimal sentence for the rule ridx? Note that, unlike
min_sentence, this function does not actually build a sentence and it is thus much
faster.
Sourcepub fn max_sentence_cost(&self, ridx: RIdx<StorageT>) -> Option<u16>
 
pub fn max_sentence_cost(&self, ridx: RIdx<StorageT>) -> Option<u16>
What is the cost of a maximal sentence for the rule ridx? Rules which can generate
sentences of unbounded length return None; rules which can only generate maximal strings of
a finite length return a Some(u16).
Sourcepub fn min_sentence(&self, ridx: RIdx<StorageT>) -> Vec<TIdx<StorageT>>
 
pub fn min_sentence(&self, ridx: RIdx<StorageT>) -> Vec<TIdx<StorageT>>
Non-deterministically return a minimal sentence from the set of minimal sentences for the
rule ridx.
Auto Trait Implementations§
impl<'a, StorageT> !Freeze for SentenceGenerator<'a, StorageT>
impl<'a, StorageT> !RefUnwindSafe for SentenceGenerator<'a, StorageT>
impl<'a, StorageT> Send for SentenceGenerator<'a, StorageT>where
    StorageT: Sync,
impl<'a, StorageT> !Sync for SentenceGenerator<'a, StorageT>
impl<'a, StorageT> Unpin for SentenceGenerator<'a, StorageT>
impl<'a, StorageT> UnwindSafe for SentenceGenerator<'a, StorageT>where
    StorageT: RefUnwindSafe,
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