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