port to new mon parsers

This commit is contained in:
John Turner
2025-10-27 02:07:17 -04:00
parent 0d6ab21582
commit b1bd90dac1
4 changed files with 46 additions and 50 deletions

View File

@@ -8,18 +8,18 @@ use crate::{
fn expr(it: InputIter<&str>) -> ParserResult<&str, Expr> {
let all_of = expr
.separated_list1(whitespace1())
.separated_list(whitespace1(), 1..)
.delimited_by(tag("(").followed_by(whitespace1()), tag(")"))
.map(|exprs| Expr::AllOf(exprs));
let any_of = expr
.separated_list1(whitespace1())
.separated_list(whitespace1(), 1..)
.delimited_by(tag("(").followed_by(whitespace1()), tag(")"))
.preceded_by(tag("||").followed_by(whitespace1()))
.map(|exprs| Expr::AnyOf(exprs));
let one_of = expr
.separated_list1(whitespace1())
.separated_list(whitespace1(), 1..)
.delimited_by(tag("(").followed_by(whitespace1()), tag(")"))
.preceded_by(tag("^^").followed_by(whitespace1()))
.map(|exprs| Expr::OneOf(exprs));
@@ -44,7 +44,7 @@ fn conditional<'a>() -> impl Parser<&'a str, Output = Conditional> {
}
pub fn exprs<'a>() -> impl Parser<&'a str, Output = Vec<Expr>> {
expr.separated_list1(whitespace1())
expr.separated_list(whitespace1(), 0..)
}
#[cfg(test)]