am_parse/
lib.rs

1mod parse;
2mod render;
3mod tokens;
4mod trie;
5
6pub enum OutputFormat {
7  Latex,
8}
9
10/// Converts input string to specified format
11/// ```
12/// use am_parse::{convert, OutputFormat};
13/// assert_eq!(convert("1+1".into(), OutputFormat::Latex, vec![]), "1+1");
14/// assert_eq!(convert("fx = 1/2".into(), OutputFormat::Latex, vec!["f"]), "f{\\left(x\\right)}=\\frac{1}{2}");
15/// ```
16pub fn convert(input: String, output_format: OutputFormat, custom_functions: Vec<&str>) -> String {
17  let tokens = tokens::tokenize(&input, custom_functions);
18  let expr = parse::parse(tokens);
19  render::render(expr, output_format)
20}
21
22#[cfg(test)]
23mod tests {
24  use super::*;
25
26  #[test]
27  fn blabla() {
28    assert_eq!(
29      convert("blabla".into(), OutputFormat::Latex, vec![]),
30      "blabla".to_owned()
31    );
32  }
33}