rzcalc 0.1.0

Simple calculator expression parser and evaluater using recursive descent parser, written in rust
Documentation
  • Coverage
  • 0%
    0 out of 25 items documented0 out of 5 items with examples
  • Size
  • Source code size: 34.15 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.98 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Homepage
  • RizalAchp/rzcalc
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • RizalAchp

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)