Parse OR expressions: xor_expr OR xor_expr
(tokens: &[Token])
| 1574 | |
| 1575 | /// Parse OR expressions: xor_expr OR xor_expr |
| 1576 | fn or_expression(tokens: &[Token]) -> IResult<&[Token], Expression> { |
| 1577 | map( |
| 1578 | tuple(( |
| 1579 | xor_expression, |
| 1580 | many0(tuple((expect_token(Token::Or), xor_expression))), |
| 1581 | )), |
| 1582 | |(first, rest)| { |
| 1583 | rest.into_iter().fold(first, |left, (_, right)| { |
| 1584 | Expression::Binary(BinaryExpression { |
| 1585 | left: Box::new(left), |
| 1586 | operator: Operator::Or, |
| 1587 | right: Box::new(right), |
| 1588 | location: Location::default(), |
| 1589 | }) |
| 1590 | }) |
| 1591 | }, |
| 1592 | )(tokens) |
| 1593 | } |
| 1594 | |
| 1595 | /// Parse XOR expressions: and_expr XOR and_expr |
| 1596 | fn xor_expression(tokens: &[Token]) -> IResult<&[Token], Expression> { |
no test coverage detected