mirror of
https://github.com/NerdyPepper/eva
synced 2024-07-08 19:45:52 +00:00
|
||
---|---|---|
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
readme.md |
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 <akshayoppiliappan@gmail.com>
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
- binary operators:
+ - * / ^
- unary operators:
+ -
constants
some constants avaliable in rust standard library.
e pi
examples:
pi * 5^2 # πr²
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 (pi, e, _ (previous answer))syntax highlighting- multiple arg functions
screenshotscreate logounary operators (minus, plus)add detailed error handleradd unit testslineditorwith syntax highlightingadd more functions
contributors
the rust community has helped eva come a long way, but these devs deserve a special mention for their contributions: