35
eva - a simple calculator repl written in rust
source link: https://www.tuicool.com/articles/jyqeymz
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
eva
simple calculator REPL, similar to bc(1)
, with syntax highlighting and persistent history
installation
- crates.io
$ cargo install eva
- manual
$ git clone https://github.com/nerdypepper/eva.git $ cargo run
usage
eva 0.2.4 NerdyPepper <[email protected]> Calculator REPL similar to bc(1) USAGE: eva [FLAGS] [OPTIONS] [INPUT] FLAGS: -h, --help Prints help information -r, --radian set eva to radian mode -V, --version Prints version information OPTIONS: -b, --base <RADIX> set the radix of calculation output (2, 8, 10, 16 etc.) -f, --fix <FIX> set number of decimal places in the output ARGS: <INPUT> optional expression string to run eva in command mode
type out an expression and hit enter, repeat.
> 1 + sin(30) 1.5 > floor(sqrt(3^2 + 5^2)) 5 > 5sin(45) + cos(0) 4.53553
updating
- crates.io
$ cargo install eva --force
- manual
$ cargo install --force --path /path/to/eva
operators
+ - * / ^ + -
functions
all trignometric functions expect input in degrees.
sin cos tan csc sec cot sinh cosh tanh asin acos atan acsc asec acot ln log sqrt ceil floor abs deg(x) - convert x to degrees rad(x) - convert x to radians
examples:
sqrt(sin(30)) # parentheses are mandatory for functions log100 # no log(100) # yes
quality of life features
- auto insertion of
*
operator
>12sin(45(2)) # 12 * sin(45 * (2)) 12
- auto balancing of parentheses
>ceil(sqrt(3^2 + 5^2 # ceil(sqrt(3^2 + 5^2)) 6
- super neat error handling
> 1 + ln(-1) Domain Error: Out of bounds!
- syntax highlighting
todo
- add support for variables (ans, pi, e)
- syntax highlighting
- multiple arg functions
- screenshots
- create logo
- unary operators (minus, plus)
- add detailed error handler
- add unit tests
- lineditor with syntax highlighting
- add more functions
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK