Function parse_multiplicative

Source
pub fn parse_multiplicative(input: &str) -> IResult<&str, Multiplicative>
Expand description

Parse a multiplicative expression.

Parses expressions with multiplicative operators (*, /, %) according to left associativity. The parser consumes unary expressions as operands and builds an AST node representing the multiplicative operation.

§Arguments

  • input - The input string slice to parse

§Returns

A IResult containing the remaining input and parsed Multiplicative expression.

§Grammar

multiplicative := unary (S? ('*' | '/' | '%') S? unary)*

Where S represents optional whitespace.

§Examples

use aimx::expressions::multiplicative::parse_multiplicative;

// Simple multiplication
let result = parse_multiplicative("2 * 3");
assert!(result.is_ok());

// Chained operations (left associative)
let result = parse_multiplicative("10 / 2 * 3");
assert!(result.is_ok());
// Parsed as (10 / 2) * 3 = 15

// With whitespace
let result = parse_multiplicative("2   *   3");
assert!(result.is_ok());

// Mixed operators
let result = parse_multiplicative("2 * 3 % 4 / 5");
assert!(result.is_ok());
// Parsed as ((2 * 3) % 4) / 5 = 0.4