Crate wcal[−][src]
A calculator that implement for Arithmetic.
Allow operator: +
-
*
/
(
)
.
Result can be i128
or f64
. A warning will
occur while result is i128
and division cast
happened, such as 3/2=1
.
This calculator has three steps:
- Use
logos
to parse the expression to tokens. - Use a parser to parse tokens to a AST.
- Calculate the result from the AST.
The following parser is available:
- Top-down parser (default)
Example
use wcal::{calculator, parser}; fn main() { let res: f64 = calculator!("1+2").unwrap(); assert_eq!(res, 3f64); let res: i128 = calculator("1+2", wcal::parser::top_down_parser::parse).unwrap(); assert_eq!(res, 3); let res: f64 = calculator("1+2", wcal::parser::top_down_parser::parse).unwrap(); assert_eq!(res, 3f64); }
Modules
generator | Use ast to calculate or generate target code. |
lexer | Lexer for the Arithmetic calculator lexical structure. |
parser | Parser for the Arithmetic calculator grammar. |
Macros
calculator | Use default parser to calculate the expression. |
Traits
FromAST | Result that can be calculate from the AST |
Functions
calculator | Use a parser to calculate the expression. |