mist_parser/parser/
mod.rs1pub mod common;
2pub mod items;
3
4use crate::Rule;
5
6pub fn listen_rule(pairs: &mut pest::iterators::Pairs<'_, Rule>, rule: Rule) -> bool {
7 let consumed = pairs
8 .peek()
9 .map(|p| p.as_rule() == rule)
10 .unwrap_or_default();
11
12 if consumed {
13 pairs.next();
14 }
15
16 consumed
17}
18
19pub fn consume_rule<'a>(
20 pairs: &mut pest::iterators::Pairs<'a, Rule>,
21 rule: Rule,
22) -> Option<pest::iterators::Pair<'a, Rule>> {
23 let consumed = pairs
24 .peek()
25 .map(|p| p.as_rule() == rule)
26 .unwrap_or_default();
27
28 if consumed { pairs.next() } else { None }
29}