rzcalc

Crates.iorzcalc
lib.rsrzcalc
version0.1.0
sourcesrc
created_at2024-02-09 12:13:18.59956
updated_at2024-02-09 12:13:18.59956
descriptionSimple calculator expression parser and evaluater using recursive descent parser, written in rust
homepagehttps://github.com/RizalAchp/rzcalc
repositoryhttps://github.com/RizalAchp/rzcalc
max_upload_size
id1133876
size34,502
Rizal Achmad Pahlevi (RizalAchp)

documentation

README

Rust Simple Calculator

Simple calculator written in Rust. Supports many arithmetic functions, boolean logic, and builtin functions.

Value types

The calculator supports four value types:

  • Booleans (true and false)
  • Numbers (examples: 1, 3.2, -200, 1.3333, 1e-3, 0xFFFFF, 0b010011, 0o777)
    • number support radix 2 (binary), 8 (octal), and 16 (hex)

Arithmetic Options

Supports the following operations:

  • Arithmetic
    • Addition: a + b
    • Subtraction: a - b
    • Multiplication: a * b
    • Division: a / b
    • Rem / Module: a % b
    • BitAnd: a & b
    • BitOr: a | b
    • BitXor: a ^ b
    • Shr: a >> b
    • Shl: a << b
  • Relational
    • Equal: a == b, a != b
    • Compare: a < b, a <= b, a > b, a >= b
  • Logic
    • Conjunction: a and b

    • Disjunction: a or b

    • Negation: not a

TODO!

Predefined constants and functions.

  • [] Supports the following constants.

    • pi
    • tau
    • e
    • nan
    • inf
    • neginf
  • [] The following common mathematical functions are supported.

    • sin(x), cos(x), tan(x)
    • asin(x), acos(x), atan(x)
    • ln(x), log10(x), log2(x), log(x, base)
    • round(x), floor(x), ceil(x)
    • sqrt(x), exp(x), powf(x, e), pow(x, e)
    • abs(x), min_num(x, y), max_num(x, y)
  • [] The following Python-like utility functions are included.

    • min(...): minimum of arguments.
    • max(...): maximum of arguments.
    • rand(), rand(stop), rand(start, stop): random float (default range is 0.0 to 1.0).
  • [] The following common printing functions to stdout/stderr are supported.

    • print(value): print to stdout
    • println(value): print to stdout with new line at the end
    • eprint(value): print to stderr
    • eprintln(value): print to stderr with new line at the end
    • debug(expr): print debug representation for expression
  • [] The following common format number functions.

    • bin(value, _bool): format number as string in binary format (0b111)
    • oct(value, _bool): format number as string in octal format (0o777)
    • hex(value, _bool): format number as string in hex format (0xFFF)
Commit count: 0

cargo fmt