Add doc-comments with examples to public functions

Signed-off-by: trivernis <trivernis@protonmail.com>
pull/12/head
trivernis 3 years ago
parent b7b3f8c45a
commit be1a65ef5c
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -22,7 +22,7 @@ pub(crate) mod utils;
///
/// Example:
///
/// ```rust
/// ```
/// let expression = asciimath_rs::parse("sin(2x) + 3".to_string());
/// ```
pub fn parse<S: AsRef<str>>(content: S) -> Expression {

@ -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<S: AsRef<str>>(text: S) -> Self {
let mut chars = text.as_ref().chars().collect::<Vec<char>>();
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<Token> {
let mut tokens = Vec::<Token>::new();
self.ctm.seek_whitespace();

@ -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<Token>) -> 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()

Loading…
Cancel
Save