Skip to main content

parse_equation_system

Function parse_equation_system 

Source
pub fn parse_equation_system(
    input: &str,
) -> Result<Vec<Equation>, Vec<ParseError>>
Expand description

Parse a semicolon-separated list of equations into a vector of Equation values.

Each segment between semicolons is trimmed and parsed as a single equation using parse_equation. Empty segments (e.g. trailing semicolons) are silently skipped. If any segment fails to parse, the errors from all failing segments are collected and returned together.

§Arguments

  • input - A string containing one or more equations separated by ';'.

§Returns

  • Ok(Vec<Equation>) — all segments parsed successfully (empty input returns an empty vector).
  • Err(Vec<ParseError>) — one or more segments failed; every error from every failing segment is included.

§Examples

§Two-equation linear system

use thales::parser::parse_equation_system;

let eqs = parse_equation_system("x + y = 5; 2*x - y = 1").unwrap();
assert_eq!(eqs.len(), 2);

§Trailing semicolon is ignored

use thales::parser::parse_equation_system;

let eqs = parse_equation_system("x = 1;").unwrap();
assert_eq!(eqs.len(), 1);

§Empty input returns empty vector

use thales::parser::parse_equation_system;

let eqs = parse_equation_system("").unwrap();
assert!(eqs.is_empty());

§Parse error propagation

use thales::parser::parse_equation_system;

assert!(parse_equation_system("x + y = 5; not_an_equation").is_err());