fn parse_logic_val(pair: Pair<Rule>) -> Expr {
    let mut negated = false;
    let mut expr = None;

    for p in pair.into_inner() {
        match p.as_rule() {
            Rule::op_not => negated = true,
            Rule::comparison_expr => expr = Some(parse_comparison_expression(p)),
            _ => unreachable!(),
        };
    }

    let mut e = expr.unwrap();
    e.negated = negated;
    e
}
/// An expression that can be negated
An expression that can be negated
An expression that can be negated
fn parse_logic_val(pair: Pair<Rule>) -> Expr {
    let mut negated = false;
    let mut expr = None;
    for p in pair.into_inner() {
        match p.as_rule() {
            Rule::op_not => negated = true,
            Rule::comparison_expr => expr = Some(parse_comparison_expression(p)),
            _ => unreachable!(),
        };
    }
    let mut e = expr.unwrap();
    e.negated = negated;
    e
}
fn parse_logic_val ( pair : Pair < Rule > ) -> Expr { let mut negated = false ; let mut expr = None ; for p in pair . into_inner ( ) { match p . as_rule ( ) { Rule :: op_not => negated = true , Rule :: comparison_expr => expr = Some ( parse_comparison_expression ( p ) ) , _ => unreachable ! ( ) , } ; } let mut e = expr . unwrap ( ) ; e . negated = negated ; e }
An expression that can be negated
An expression that can be negated
pair
Pair<Rule>
pair
Pair<Rule>