Как я могу использовать nom для разбора любого альфа1, кроме нескольких особых случаев? - PullRequest
0 голосов
/ 24 сентября 2019

Я хотел бы проанализировать любой альфа1, кроме нескольких случаев, таких как «истина» или «ложь».Эта функция будет анализировать «true» или «false», но я ожидаю, что вывод «true» или «false» будет ошибкой.

use nom::bytes::complete::tag;
use nom::character::complete::alpha1;
use nom::combinator::map;
use nom::error::VerboseError as Error;

#[derive(Debug, PartialEq, Clone)]
pub enum Factor {
    Variable(String),
}

pub fn variable(input: &str) -> IResult<&str, Factor, Error<&str>> {
    map(alpha1, |v: &str| Factor::Variable(v.to_string()))(input)
}
...