pub struct Grammar { /* private fields */ }
Expand description
Drop-in replacement for cfg::Cfg
that traces relations between user-provided
and internal grammars.
Implementations§
source§impl Grammar
impl Grammar
pub fn new() -> Self
pub fn set_start(&mut self, start: Symbol)
pub fn start(&self) -> Symbol
pub fn rule(&mut self, lhs: Symbol) -> RuleBuilder<&mut Cfg>
pub fn sequence( &mut self, lhs: Symbol ) -> SequenceRuleBuilder<&mut Vec<Sequence>>
pub fn binarize(&self) -> BinarizedGrammar
Methods from Deref<Target = Cfg>§
sourcepub fn sym<T>(&mut self) -> Twhere
T: SymbolContainer,
pub fn sym<T>(&mut self) -> Twhere T: SymbolContainer,
Returns generated symbols.
sourcepub fn sequence(
&mut self,
lhs: Symbol
) -> SequenceRuleBuilder<&mut Vec<Sequence>>
pub fn sequence( &mut self, lhs: Symbol ) -> SequenceRuleBuilder<&mut Vec<Sequence>>
Starts building a sequence rule.
sourcepub fn sequence_rules(&self) -> &[Sequence]
pub fn sequence_rules(&self) -> &[Sequence]
Returns sequence rules.
sourcepub fn rewrite_sequences(&mut self)
pub fn rewrite_sequences(&mut self)
Forces a rewrite of sequence rules into grammar rules.
sourcepub fn binarize<'a>(&'a self) -> BinarizedCfgwhere
&'a Self: RuleContainerRef<'a, Target = Self>,
pub fn binarize<'a>(&'a self) -> BinarizedCfgwhere &'a Self: RuleContainerRef<'a, Target = Self>,
Returns a binarized grammar which is weakly equivalent to this grammar.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Grammar
impl Send for Grammar
impl Sync for Grammar
impl Unpin for Grammar
impl UnwindSafe for Grammar
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