Commit Graph

235 Commits

Author SHA1 Message Date
Sebastian Schmidt
ab24e08f28 Remove superfluous printlns. 2023-04-13 14:44:47 +03:00
Sebastian Schmidt
4fd86751dc Fix unary operator precedence.
Before, unary operators that appeared after an operator with higher precedence would be executed after that operator.

However, in evalexpr, the two unary operators are prefix operators negation and not, and prefix operators always happen before operators directly left of them.
2023-04-13 14:42:39 +03:00
Claus Matzinger
f5520077e0
Added Clone to errors 2022-12-01 23:20:08 +01:00
Natan Freeman
927e0e4075 Replaces f64 and i64 with FloatType and IntType. 2022-09-14 21:36:36 +03:00
Tobias Schmitt
165c606ed4 typo in doctest 2022-07-21 21:16:09 +02:00
Tobias Schmitt
532e2ed770 adds iter_(read/write)_variable_identifiers
seperate iterator returns for read and write variable identifiers.
this is useful in our project and i suspect it might be of use for
others too.
2022-07-21 21:12:26 +02:00
Sebastian Schmidt
4cc86e7683 Add trait to allow iterating over all variables in a context.
Both iterating with and without values is supported.
Due to limitations in the language, currently only iterating by cloning is supported. When GATs are stabilised, this should change.

Relates to #108
2022-07-15 13:44:31 +03:00
Sebastian Schmidt
3d60c66305 Replace version specification in README with "desired version". 2022-07-15 13:16:24 +03:00
Sebastian Schmidt
e70e9d366a Use explicit operator type for reading and writing variables.
Before, variables written to were represented with the same operator as constants in the AST. This was hacky and confusing to some users.

Closes #106
2022-07-04 17:10:28 +03:00
Sebastian Schmidt
54c4286672 Use double dot syntax in operator/mod.rs. 2022-07-04 17:03:32 +03:00
Sebastian Schmidt
65fadfd164 Add tests for left-hand side of assignment being an identifier.
Relates to #106
2022-07-04 16:50:50 +03:00
Sebastian Schmidt
563d82a525 Fix unnecessary unused lints. 2022-07-04 14:51:27 +03:00
Sebastian Schmidt
5f1aa344ab Fix unnecessary format lints. 2022-07-04 14:44:34 +03:00
Sebastian Schmidt
4927de7ac6 Implement TryFrom<Value> for all types a value can store. 2022-07-04 14:37:48 +03:00
ISibboI
687f762115
Merge branch 'main' into random 2022-04-07 16:20:41 +03:00
Ophir LOJKINE
27bd1a32d7 add comment
Fixes https://github.com/ISibboI/evalexpr/pull/101#discussion_r838444554
2022-03-30 14:44:19 +02:00
Ophir LOJKINE
bce31e24ae new function: random()
random() returns a random number between 0 and 1
2022-03-30 14:39:26 +02:00
Ophir LOJKINE
9d5ef651ae cargo fmt 2022-03-23 18:09:23 +01:00
Ophir LOJKINE
8eedf720e7 Implement changes requested in PR
https://github.com/ISibboI/evalexpr/pull/101#issuecomment-1076466426
2022-03-23 16:33:53 +01:00
Ophir LOJKINE
3c4a429e8d Remove is_sumbnormal 2022-03-23 13:11:41 +01:00
Ophir LOJKINE
ea42cf6355 Add support for is_nan, is_finite, and other floating-point testing functions 2022-03-23 13:04:09 +01:00
Ophir LOJKINE
d96ab3abf4 fix typo 2022-03-14 16:09:41 +01:00
Ophir LOJKINE
65bf8adc9c remove duplicated code 2022-03-14 16:08:08 +01:00
Ophir LOJKINE
af77f1703e remove unnecessary clone 2022-03-14 15:58:42 +01:00
Ophir LOJKINE
7522df14b7 remove dead code 2022-03-14 15:50:08 +01:00
Ophir LOJKINE
9eedc8e93b cargo fmt 2022-03-14 15:07:38 +01:00
Ophir LOJKINE
a219f0b66f Add an "if" function
If the first argument is true, returns the second argument, otherwise, return the third
2022-03-14 14:59:48 +01:00
Diane Sparks
d6fafc171d
Add bitwise shift functions 2022-03-06 10:17:37 -08:00
Sebastian Schmidt
79cb25bc9d Increase test coverage. 2022-01-13 15:18:06 +02:00
Sebastian Schmidt
7af8da5cdb Prepare 7.0.0 release. 2022-01-13 14:54:34 +02:00
Sebastian Schmidt
4e5e218d3e Fix #94.
Introduce a new error type for illegal parenthese expressions such as `4(5)`.
2022-01-13 14:50:38 +02:00
Sebastian Schmidt
ea278893ac Prepare for 6.6.0 release. 2021-10-13 14:31:02 +03:00
Sebastian Schmidt
55092ce793 Merge branch '88_bitwise_operators' into main
# Conflicts:
#	CHANGELOG.md
2021-10-12 15:11:56 +03:00
Sebastian Schmidt
d2f3d415df Make functions to access operator and children of a Node public. 2021-10-12 15:10:54 +03:00
Sebastian Schmidt
b3be7f600c Implement bitwise operators as builtin functions.
Relates to #88
2021-10-12 14:59:10 +03:00
Jakub Dąbek
6be3b7d80e Make Function able to hold capturing closures.
This commit "reverts" a change introduced in bee98999,
by making `Function` be simultaneously `Fn` and `Clone`.
2021-08-15 20:11:00 +02:00
Sebastian Schmidt
053f3cf877 Add further documentation about float VS int behavior.
Relates to #89
2021-08-01 15:22:10 +03:00
Sebastian Schmidt
42771468a1 Update docs and changelog. 2021-07-21 13:42:50 +03:00
Sebastian Schmidt
094c2d59dc Format code. 2021-07-21 13:39:19 +03:00
Dennis Marttinen
fbbecc766f
Add support for scientific notation of the form <coefficient>e{+,-,}<exponent> 2021-07-20 20:34:51 +03:00
Sebastian Schmidt
97c5fc1c21 Add tests for evaluating operator tree and fix correct error for eval_number functions. 2021-07-13 14:55:23 +03:00
Sebastian Schmidt
56a5f7b0e8 Update changelog and readme for 7.0 release. 2021-07-13 14:43:59 +03:00
Sebastian Schmidt
e80fd20804 Increase test coverage and fix wrong error in shortcut method. 2021-07-13 14:28:25 +03:00
Sebastian Schmidt
9103aa7a26 Make more functions const. 2021-07-13 13:55:22 +03:00
Sebastian Schmidt
8b493be1dd Increase test coverage.
Implement more tests and exclude modules from test that do not make sense to be tested.
2021-07-13 13:41:16 +03:00
Sebastian Schmidt
7ebf7e61d5 Increase test coverage.
Implement more tests and exclude modules from test that do not make sense to be tested.
2021-07-13 13:39:47 +03:00
Sebastian Schmidt
08bc44183e Fix missing argument type for atan2.
Relates to #85
2021-07-06 15:50:05 +03:00
Magnus Ulimoen
2c2c31efd7 Document math builtins 2021-07-04 14:25:16 +02:00
Magnus Ulimoen
9883aeb52c Add additional math builtins 2021-06-30 22:11:58 +02:00
Magnus Ulimoen
d466bb0f24 Implement Clone for HashMapContext 2021-06-23 22:29:16 +02:00