Skip to content

audstanley/calc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

calc

A command-line calculator with custom lexer and parser.

Install

go install github.com/audstanley/calc@latest

Or use make:

make install

Usage

calc 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"

Features

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)" returns 1
  • calc eval --dec "sin(30) + cos(60)" returns 1

Number modes:

  • --bin : binary mode (e.g., calc eval --bin "0b1010 + 0b10")
  • --hex : hex mode (e.g., calc eval --hex "0xFF * 0x0F")

Examples

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)"

Build

make build
make clean

Code Coverage

90% code coverage

License

MIT License

About

a go calculator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors