fix useflag parser

This commit is contained in:
John Turner
2025-10-24 21:36:06 -04:00
parent d75266f967
commit aa0d4edc57
2 changed files with 15 additions and 3 deletions

View File

@@ -1,10 +1,15 @@
use mon::{Parser, alpha1, alphanumeric, one_of, take_while};
use mon::{Parser, r#if, take_while};
use crate::useflag::UseFlag;
pub fn useflag<'a>() -> impl Parser<&'a str, Output = UseFlag> {
alpha1()
.and(alphanumeric().or(take_while(one_of("+_@-".chars()))))
let start = r#if(|c: &char| c.is_ascii_alphanumeric());
let rest = take_while(r#if(|c: &char| {
c.is_ascii_alphanumeric() || "+_@-".contains(*c)
}));
start
.and(rest)
.recognize()
.map(|output: &str| UseFlag(output.to_string()))
}