Skip to main content

Module binary_ops

Module binary_ops 

Source
Expand description

Binary operator expression parsing

This module handles parsing of all binary operators with proper precedence:

  • Pipe operator (|>)
  • Ternary operator (?:)
  • Null coalescing (??)
  • Error context wrapping (!!)
  • Logical operators (||, &&)
  • Comparison operators (>, <, >=, <=, ==, !=, ~=, ~>, ~<)
  • Range operator (..)
  • Arithmetic operators (+, -, *, /, %, ^)

Functionsยง

parse_additive_expr
Parse additive expression (a + b, a - b)
parse_and_expr
Parse logical AND expression (a && b)
parse_assignment_expr
Parse assignment expression (target = value or target += value)
parse_comparison_expr
Parse comparison expression (a > b, a == b, etc.)
parse_comparison_op
Parse comparison operator
parse_context_expr
Parse error context expression (lhs !! rhs).
parse_exponential_expr
Parse exponential expression (a ** b)
parse_multiplicative_expr
Parse multiplicative expression (a * b, a / b, a % b)
parse_null_coalesce_expr
Parse null coalescing expression (a ?? b)
parse_or_expr
Parse logical OR expression (a || b)
parse_pipe_expr
Parse pipe expression (a |> b |> c) Pipes the left value into the right function
parse_range_expr
Parse a range expression with Rust-style syntax. Supports: start..end, start..=end, ..end, ..=end, start.., ..
parse_shift_expr
Parse shift expression (a << b, a >> b)
parse_ternary_expr
Parse ternary expression (condition ? then : else)
parse_unary_expr
Parse unary expression (!a, -a)