Progress this Week This week I extended the parsers to more SBML and MathML constructs and started working on the simulator. The SBML parser now supports Function Definitions and the MathML parser supports lambda functions and variable bindings. The mathml package can also be used to evaluate an abstract syntax tree now, in the following way: let model = sbml_rs :: parse (& filename ). expect ( "Couldn't parse model." ); // Supply values for variables let mut hm : HashMap < String , f64 > = HashMap :: new (); hm . insert ( "compartment" . into (), 5.0 ); hm . insert ( "k1" . into (), 5.0 ); hm . insert ( "S1" . into (), 6.0 ); // Evaluate math nodes for tag in & model { if let Tag :: MathTag ( math_tag ) = tag { println! ( " { } " , evaluate_node (& math_tag . nodes , 0 , & hm ). unwrap ()); } } If the AST has any constant...