Commit Graph

84 Commits

Author SHA1 Message Date
Sebastian Schmidt
83386c03d3 Improve documentation of builtin functions
Relates to #38
2019-04-13 18:12:33 +02:00
ISibboI
2f7d1c2dfe
Merge pull request #38 from bittrance/string-operators
String operators and builtin functions
2019-04-13 18:02:24 +02:00
Quest
be54931f76 Builtin string functions - downcase, len, match(regex), replace(regex), trim, upcase. New dependency regex. 2019-04-12 23:35:33 +02:00
Sebastian Schmidt
15313f7341 Update target release 2019-04-12 18:45:46 +02:00
Sebastian Schmidt
67d68cd974 Add string constants
* Implement string parsing in tokenizer
 * Implement escape sequences `\"` and `\\`
 * Document changes
 * Update change log

Relates to #35
2019-03-30 11:54:26 +01:00
Sebastian Schmidt
17bedddb11 Add serde support for HashMapContext
Relates to #33
2019-03-28 15:40:02 +01:00
Sebastian Schmidt
606c358cc9 Make operator table one-columned 2019-03-28 15:01:20 +01:00
Sebastian Schmidt
aeb584edca Add quickstart documentation with chain and assign features 2019-03-28 12:09:46 +01:00
Sebastian Schmidt
44152533c3 Set release target to major 2019-03-28 11:49:06 +01:00
Sebastian Schmidt
ab49531306 Document chain operator
Relates to #26
2019-03-28 11:46:56 +01:00
Sebastian Schmidt
83269068a2 Add the assignment operator
Relates to #25
2019-03-28 11:12:47 +01:00
Sebastian Schmidt
13420ed745 Document the empty type
Relates to #28
2019-03-28 10:38:16 +01:00
Sebastian Schmidt
5bc4bcb702 Add crate level shortcut evaluations for Value::Empty
Relates to #28
2019-03-28 10:32:42 +01:00
Sebastian Schmidt
7d36ebe8df Add Node shortcut evaluations for Value::Empty
Relates to #28
2019-03-28 10:26:49 +01:00
Sebastian Schmidt
88ab1e1987 Add Value::Empty and ValueType::Empty
Relates to #28
2019-03-28 09:56:44 +01:00
Sebastian Schmidt
e266f4fc0d Merge ContextMut with Context and add eval_<type>_with_context_mut methods
Trait objects of `ContextMut` cannot be converted into `Context`, even though `ContextMut` requires `Context`.

Relates to #30
2019-03-28 09:22:48 +01:00
Sebastian Schmidt
0acbcd8958 Format code 2019-03-28 08:44:04 +01:00
Sebastian Schmidt
ece22c6b35 Fix typo 2019-03-28 08:41:46 +01:00
Sebastian Schmidt
83451a9028 Use as_number in quickstart example
Otherwise the example would not allow mixed float and int arguments.
2019-03-28 08:41:16 +01:00
Sebastian Schmidt
6f31d69d7d Prepare 2.0.0 release 2019-03-27 19:14:24 +01:00
Sebastian Schmidt
d77fa15864 Use EvalexprResult<T> everywhere
Relates to #31
2019-03-27 19:09:58 +01:00
Sebastian Schmidt
24ca11e52a Document how to enable serde feature flag
Relates to #21
2019-03-27 18:35:00 +01:00
Sebastian Schmidt
9283d5412f Rename Context to ContextMut and Configuration to Context
Get rid of two different words for the same concept.

Relates to #22
2019-03-27 18:09:33 +01:00
Sebastian Schmidt
7decb7c895 Make ValueType public 2019-03-27 17:55:05 +01:00
Sebastian Schmidt
44041b03db Make TupleType alias public 2019-03-27 17:53:48 +01:00
Sebastian Schmidt
3da6019dae Add Context trait
* Rename `HashMapConfiguration` to `HashMapContext`
 * Rename `EmptyConfiguration` to `EmptyContext`
 * Implement `Context` for both predefined contexts
 * Update tests and doctests

Relates to #22
2019-03-27 17:45:06 +01:00
Sebastian Schmidt
fd879193b6 Rename Error to EvalexprError and add EvalexprResult
Relates to #27
2019-03-27 16:33:46 +01:00
Sebastian Schmidt
8a49bf9c11 Get rid of some unwraps
Relates to #14
2019-03-27 16:16:40 +01:00
Sebastian Schmidt
49da58976e Improve serde readme
Relates to #18
2019-03-23 15:39:19 +02:00
Sebastian Schmidt
a7ca4c717d Implement, test and document serde Deserialize for expressions
Relates to #18
2019-03-23 15:20:43 +02:00
Sebastian Schmidt
3d440524a5 Fix checking for serde feature flag in code
Relates to #18
2019-03-23 14:29:53 +02:00
Sebastian Schmidt
5e491f6771 Add serde feature
Relates to #18
2019-03-23 12:46:52 +02:00
Sebastian Schmidt
3a816fa7e7 Add highlighting to readme 2019-03-21 09:40:50 +02:00
Sebastian Schmidt
1375134e9f Document operations on values
Relates to #16
2019-03-20 17:30:37 +02:00
Sebastian Schmidt
d4359d71bf Document the shortcut functions for direct evaluation into types
Related to #15
2019-03-20 17:06:47 +02:00
Sebastian Schmidt
36a65c470b Refactor lib.rs
* Move tests into integration test folder
 * Move crate methods into interface module
2019-03-20 15:48:05 +02:00
Sebastian Schmidt
4177ae7e77 Prepare 1.0.0 release 2019-03-20 15:04:59 +02:00
Sebastian Schmidt
6f17e481aa Ensure no-panic for operators
Partially implements #11
2019-03-20 12:52:11 +02:00
Sebastian Schmidt
58e8603194 Rename Node::eval to Node::eval_with_configuration for consistency.
* Rename `Node::eval` to `Node::eval_with_configuration`
 + Add `Node::eval` that calls `Node::eval_with_configuration` with an `EmptyConfiguration`
 + Improve documentation of `Node` and the changed methods

Implements #5
2019-03-20 11:58:08 +02:00
Sebastian Schmidt
6fe5a8cdef Document toplevel functions
Implements #6
2019-03-19 20:24:11 +02:00
Sebastian Schmidt
4a32062089 Warn for missing docs 2019-03-19 20:13:04 +02:00
Sebastian Schmidt
827c7440be Format code and sync readme 2019-03-19 20:12:30 +02:00
Sebastian Schmidt
92da684c69 Implement min and max builtin functions
Implement #8, partially implement #1
2019-03-19 20:08:23 +02:00
Sebastian Schmidt
f0ab317961 Test functions with arbitrary argument amount
Implements #7
2019-03-19 19:05:21 +02:00
Sebastian Schmidt
fd3243e555 Implement functions with arbitrary argument amount
Implements #7
2019-03-19 18:58:53 +02:00
Sebastian Schmidt
8e898044c0 Document the aggregation operator
Documents #4
2019-03-19 18:49:59 +02:00
Sebastian Schmidt
55e8b51228 Add exponentiation operator
+ Add hat token
 + Add exponentiation operator
 + Document exponentiation operator
 + Test exponentiation operator

Implements #3
2019-03-19 18:42:50 +02:00
Sebastian Schmidt
93e8d867b4 Add exponentation operator
+ Add hat token
 + Add exponentation operator

Implements #3
2019-03-19 18:32:10 +02:00
Sebastian Schmidt
c631171ff0 Add comma operator and display implementations
+ Add comma token
 + Add tuple operator
 + Add tuple value type
 + Implement display for `tree::Node` and all related types
 + Add support for right-to-left chaining of operators with same precedence

The priority of chaining of operators with the same precedence remains left-to-right.
Only if two consecutive operators with the same precedence are right-to-left, they will be ordered right-to-left.

Implements #4.
2019-03-19 18:24:36 +02:00
Sebastian Schmidt
265b1214b0 Improve documentation about precedence and operators and README introduction 2019-03-19 16:47:17 +02:00