diff --git a/src/lib.rs b/src/lib.rs index 6ee35c0..0280b44 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -22,7 +22,7 @@ pub(crate) mod utils; /// /// Example: /// -/// ```rust +/// ``` /// let expression = asciimath_rs::parse("sin(2x) + 3".to_string()); /// ``` pub fn parse>(content: S) -> Expression { diff --git a/src/parsing/tokenizer.rs b/src/parsing/tokenizer.rs index 3591439..c4e2e16 100644 --- a/src/parsing/tokenizer.rs +++ b/src/parsing/tokenizer.rs @@ -19,6 +19,15 @@ pub struct Tokenizer { } impl Tokenizer { + /// Creates a new AsciiMath tokenizer with a given input string. + /// After creation the parse method can be used to parse a list of tokens + /// Example: + /// ``` + /// use asciimath_rs::parsing::tokenizer::Tokenizer; + /// + /// let mut tokenizer = Tokenizer::new("2^(2-i)"); + /// let tokens = tokenizer.parse(); + /// ``` pub fn new>(text: S) -> Self { let mut chars = text.as_ref().chars().collect::>(); chars.push('\n'); @@ -27,6 +36,7 @@ impl Tokenizer { } } + /// Parses the input string passed on creation of the tokenizer into a list of tokens pub fn parse(&mut self) -> Vec { let mut tokens = Vec::::new(); self.ctm.seek_whitespace(); diff --git a/src/parsing/tree_parser.rs b/src/parsing/tree_parser.rs index 5058ac2..82abc47 100644 --- a/src/parsing/tree_parser.rs +++ b/src/parsing/tree_parser.rs @@ -17,6 +17,21 @@ pub struct TreeParser { } impl TreeParser { + /// Creates a new TreeParser that takes tokens parsed by the Tokenizer. The parse method + /// can be used to create the Expression tree. + /// Example: + /// ``` + /// use asciimath_rs::parsing::tokenizer::Tokenizer; + /// use asciimath_rs::parsing::tree_parser::TreeParser; + /// + /// // use the tokenizer to create a list of tokens + /// let mut tokenizer = Tokenizer::new("2*2"); + /// let tokens = tokenizer.parse(); + /// + /// // use the tree parser to build the expression tree + /// let mut tree_parser = TreeParser::new(tokens); + /// tree_parser.parse(); + /// ``` pub fn new(tokens: Vec) -> Self { Self { tokens, @@ -25,6 +40,7 @@ impl TreeParser { } } + /// Creates an expression tree out of the tokens passed to the TreeParser on creation pub fn parse(&mut self) -> Expression { self.remove_whitespace(); self.parse_expression()