cfg_sequence/
ext.rs

1use cfg_grammar::Cfg;
2use cfg_symbol::Symbol;
3
4use crate::{
5    builder::SequenceRuleBuilder, destination::SequenceDestination, rewrite::SequencesToProductions,
6};
7
8/// Extension trait for easy adding sequence rules
9/// to a `Cfg`.
10pub trait CfgSequenceExt {
11    /// Adds a sequence rule to a grammar.
12    fn sequence(&mut self, lhs: Symbol) -> SequenceRuleBuilder<SequencesToProductions<'_>>;
13}
14
15impl CfgSequenceExt for Cfg {
16    fn sequence(&mut self, lhs: Symbol) -> SequenceRuleBuilder<SequencesToProductions<'_>> {
17        SequencesToProductions::new(self).sequence(lhs)
18    }
19}