A command-line calculator with custom lexer and parser.
go install github.com/audstanley/calc@latestOr use make:
make installcalc eval "2 + 3 * 4"
calc eval "2^128"
calc eval "sin(pi/2) + cos(pi)"
calc eval "x + y" --var "x=10" --var "y=5"Operators: +, -, *, /, ^, %, <<, >>, &, |, ^
Functions: sin, cos, tan, asin, acos, atan, log, ln, logn, sqrt, abs, pow, ceil, floor, round, min, max, deg2rad, rad2deg
Constants: pi, e
Trig mode: Use --dec flag to work with degrees instead of radians:
calc eval --dec "sin(90)"returns1calc eval --dec "sin(30) + cos(60)"returns1
Number modes:
--bin: binary mode (e.g.,calc eval --bin "0b1010 + 0b10")--hex: hex mode (e.g.,calc eval --hex "0xFF * 0x0F")
calc eval "2^128"
calc eval "sin(pi/2) + cos(pi)"
calc eval --dec "sin(90)"
calc eval --dec "sin(30) + cos(60)"
calc eval "deg2rad(90)"
calc eval "x + y * 2" --var "x=10" --var "y=5"
calc eval --bin "0b10101010 ^ 0b11001100"
calc eval --hex "0xFF + 0x01"
calc eval "log(1000) + ln(e)"
calc eval "ceil(3.14) + floor(2.9)"
calc eval "min(5, 10, 3) + max(5, 10, 3)"make build
make clean90% code coverage
MIT License