Shroom
A library for evaluating strings as expressions.
This is an experimental version. The crate is unstable and most of the features are yet to be tested.
Example usage:
// construct a new shroom instance
let shrm = new;
// `eval` returns a `Result` containing a shroom primitive value on success
// or an error message on fail.
// A shroom primitive value can be an integer, a floating point number, a boolean value or a string.
// Calling `unwrap_int` on a primitive value returns the value as i64 or panics if it is not an integer.
let result = shrm.eval.unwrap.unwrap_int;
println!;
Output:
2 + 3 * 4 = 14
A shroom expression can contain decimal, hexadecimal (with prefix 0x
), octal (0o
) and binary (0b) integers, floating point numbers (basic decimal and scientific notation), boolean values (true
or false
), strings (enclosed in "
) and the following binary operators:
+
-
*
/
**
%
: basic arithmetic operations, exponentiation and remainder&
|
^
<<
>>
: bitwise operations>
<
>=
<=
!=
==
: comparisons&&
||
: logical operations+
can be used for string concatenation