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}