1 unstable release
0.0.1 | Mar 17, 2019 |
---|
#77 in #evaluation
100KB
2.5K
SLoC
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 = Shroom::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("2 + 3 * 4").unwrap().unwrap_int();
println!("2 + 3 * 4 = {}", result);
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
Dependencies
~4MB
~89K SLoC