Commit Graph

140 Commits

Author SHA1 Message Date
Sebastian Schmidt
2ee1f8f62c Deny missing docs 2019-08-29 08:56:58 +03:00
Sebastian Schmidt
e6c19077b6 Implement value decomposition API
* Removed expect_... methods and replaced them with .as_...() methods. This removes the need to import the free-standing methods every time and makes the code cleaner.
 * Changed all the examples appropriately.

Implements #53
2019-08-29 08:56:49 +03:00
Sebastian Schmidt
502ec0adce Format code 2019-05-04 13:54:19 +02:00
Sebastian Schmidt
6f533ca925 Merge branch '52_remove_automatic_function_argument_decomposition' 2019-05-04 13:53:47 +02:00
Sebastian Schmidt
f6c2ef2fb6 Remove automatic function argument decomposition
Relates to #52
2019-05-04 13:43:29 +02:00
Sebastian Schmidt
2ca7209d22 Remove debug output 2019-05-04 13:43:05 +02:00
Sebastian Schmidt
21b308f3ae Format code 2019-04-26 17:37:59 +02:00
ISibboI
b85e8e1b75
Merge pull request #49 from lovasoa/master
Use the new context macro in the README examples
2019-04-26 17:36:15 +02:00
Sebastian Schmidt
bc826e5bf2 Use context_map macro in lib.rs documentation as well
Should have used `cargo sync-readme` to begin with, but that was not
documented at the time of this pull request.
2019-04-26 17:33:59 +02:00
Sebastian Schmidt
8432058052 Execute serde doctest only if serde_support is enabled
Relates to #50
2019-04-24 18:36:30 +02:00
Sebastian Schmidt
6f77471354 Fixed aggregation operator
Manage sequence operators, which currently are `Chain` and `Token` on the stack without ever inserting unfinished sequence operator nodes into another node.

Relates to #44
2019-04-22 19:08:55 +02:00
Sebastian Schmidt
2e929ae0fe Replace manual type_id with builtin function of trait Any
Relates to #44
2019-04-22 16:24:26 +02:00
Sebastian Schmidt
d576cec9b9 Add flattening of operator chains when building operator tree
Relates to #44
2019-04-22 16:20:33 +02:00
Sebastian Schmidt
531b7b72a0 Make Operator::max_argument_amount optional
Relates to #44
2019-04-22 16:17:02 +02:00
Sebastian Schmidt
0eaeb3f6ab Improve context_map macro docs
Relates to #48
2019-04-16 20:52:18 +02:00
Ophir LOJKINE
bb827c55ce Add a macro for easy context definition 2019-04-15 00:07:07 +02:00
Sebastian Schmidt
6c078c49e5 Refactor operators into an enum
(This commit is not formatted properly)

Relates to #46
2019-04-14 16:54:35 +02:00
Sebastian Schmidt
697fbb5d45 Implement iterators over variable and function identifiers
Relates to #37
2019-04-13 20:16:05 +02:00
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
dbf3949af6 Namespace string builtins into "str::". 2019-04-12 23:45:29 +02:00
Quest
d72334c246 Rename builtin upcase,downcase -> to_uppercase, to_lowercase. 2019-04-12 23:45:29 +02:00
Quest
7c6b6d4319 Rename matches,replace -> regex_{matches,replace}.
Also simplify their error handling.
2019-04-12 23:45:29 +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
e328adb97b Implement Node::iter_identifiers()
This commit implements an iterator over the identifiers in an expression.
The identifiers are iterated pre-order, meaning that higher nodes in the tree are emitted first.
The identifier iterator is based on a general iterator over all nodes in an operator tree, which can be used for further featues.

Relates to #37
2019-04-12 19:27:34 +02:00
Sebastian Schmidt
7545d1f31e Fix ExpectedNumber error message
Relates to #40
2019-04-12 18:48:27 +02:00
Sebastian Schmidt
15313f7341 Update target release 2019-04-12 18:45:46 +02:00
Quest
a9c45307dd Support addition and comparison of strings. 2019-04-05 23:07:54 +02:00
Sebastian Schmidt
2caf000584 Export expect_function_argument_amount 2019-03-31 15:46:22 +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
c63206fa17 Add derive(Default) to HashMapContext 2019-03-28 15:44:25 +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
9d27969eac Implement and test chain operator
Relates to #26
2019-03-28 11:34:54 +01:00
Sebastian Schmidt
4838a21a57 Add default implementation for Operator::is_left_to_right 2019-03-28 11:14:55 +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
a7b5f602d5 Do not require expressions to have content
* Make parser return implicit toplevel node
 * Make `RootNode` return `Value::Empty` if it has no arguments instead of failing

Relates to #28
2019-03-28 10:10:16 +01:00
Sebastian Schmidt
88ab1e1987 Add Value::Empty and ValueType::Empty
Relates to #28
2019-03-28 09:56:44 +01:00
Sebastian Schmidt
3c108d5960 Add crate shortcut methods to eval with context mut
Relates to #30
2019-03-28 09:48:12 +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
6bd68e6491 Add eval_mut function to Operator trait
Relates to #30
2019-03-28 08:52:49 +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