pub struct Parser { /* private fields */ }Expand description
Fully integrated mathematical expression parser
Implementations§
Source§impl Parser
impl Parser
Sourcepub fn new(config: &ParserConfig) -> Self
pub fn new(config: &ParserConfig) -> Self
Create parser with implicit multiplication enabled
Sourcepub fn parse(&self, input: &str) -> Result<Expression, ParseError>
pub fn parse(&self, input: &str) -> Result<Expression, ParseError>
Parse mathematical expression with full integration
§Examples
use mathhook_core::parser::Parser;
use mathhook_core::parser::config::ParserConfig;
let parser = Parser::new(&ParserConfig::default());
// These will work with implicit multiplication:
let expr = parser.parse("2x").unwrap(); // -> 2 * x
let expr = parser.parse("xy").unwrap(); // -> x * y
let expr = parser.parse("2(x+1)").unwrap(); // -> 2 * (x + 1)
// These work normally:
let expr = parser.parse("x + y").unwrap(); // -> x + y
let expr = parser.parse("x^2").unwrap(); // -> x^2Trait Implementations§
Auto Trait Implementations§
impl Freeze for Parser
impl RefUnwindSafe for Parser
impl Send for Parser
impl Sync for Parser
impl Unpin for Parser
impl UnwindSafe for Parser
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more