diff --git a/Cargo.toml b/Cargo.toml index e858f25..aa4153a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "asciimath-rs" description = "AsciiMath parser" repository = "https://github.com/trivernis/asciimath-rs" -version = "0.5.1" +version = "0.5.2" authors = ["trivernis "] edition = "2018" readme = "README.md" diff --git a/src/lib.rs b/src/lib.rs index 8e305ca..bb9853a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -311,22 +311,26 @@ mod tests { #[test] fn it_parses_vectors() { assert_eq!( - parse("((1), (2))".to_string()), + parse("((1), (2)) - f".to_string()), Expression { - children: vec![Element::Group(Group::Vector(Vector { - inner: vec![ - vec![Expression { - children: vec![Element::Literal(Literal::Number(Number { - number: "1".to_string() - }))] - }], - vec![Expression { - children: vec![Element::Literal(Literal::Number(Number { - number: "2".to_string() - }))] - }] - ] - }))] + children: vec![ + Element::Group(Group::Vector(Vector { + inner: vec![ + vec![Expression { + children: vec![Element::Literal(Literal::Number(Number { + number: "1".to_string() + }))] + }], + vec![Expression { + children: vec![Element::Literal(Literal::Number(Number { + number: "2".to_string() + }))] + }] + ] + })), + Element::Literal(Literal::Operation(Operation::Minus)), + Element::Literal(Literal::Function(Function::F)) + ] } ); assert_eq!( diff --git a/src/parsing/tree_parser.rs b/src/parsing/tree_parser.rs index 6ad8a3a..ac30a66 100644 --- a/src/parsing/tree_parser.rs +++ b/src/parsing/tree_parser.rs @@ -101,6 +101,7 @@ impl TreeParser { Token::Logical(l) => Some(Element::Literal(Literal::Logical(l.clone()))), Token::Relation(r) => Some(Element::Literal(Literal::Relation(r.clone()))), Token::Greek(g) => Some(Element::Literal(Literal::Greek(g.clone()))), + Token::Function(f) => Some(Element::Literal(Literal::Function(f.clone()))), Token::Text(t) => { if let Some(literal) = self.parse_text(t) { Some(Element::Literal(literal))