Commit Graph

163 Commits

Author SHA1 Message Date
Sebastian Schmidt
43e0256550 Fix != was wrongfully parsed as Token::Eq
Fixes #68
2019-08-30 12:48:00 +03:00
Sebastian Schmidt
6163972382 Reformat code examples to reduce horizontal scrolling 2019-08-30 10:07:48 +03:00
Sebastian Schmidt
b8d7344cc5 Improve documentation 2019-08-30 10:03:31 +03:00
Sebastian Schmidt
4571f3a578 Update aggregation operator documentation
Relates to #44
2019-08-30 09:16:43 +03:00
Sebastian Schmidt
a36d4d3815 Use mutable contexts in eval methods of Node
This was forgotten when closing #45.

Relates to #45
2019-08-29 18:06:39 +03:00
Sebastian Schmidt
2d1704b9a3 Implement better error messages for addition with incompatible types
Implements #60
2019-08-29 16:36:35 +03:00
Sebastian Schmidt
2ec3dc74c1 Make operator enum public
This is required for better error messages.

Relates to #60
2019-08-29 16:28:43 +03:00
Sebastian Schmidt
88719317a5 Fix documentation of error constructors
Fixes #61
2019-08-29 16:11:20 +03:00
Sebastian Schmidt
0e2ca4a489 Add but not use WrongTypeCombinationError
Relates to #60
2019-08-29 13:49:56 +03:00
Sebastian Schmidt
a3faefb893 Fix panic when adding number to string
For no reason, unwraps were used in the operator module.

Fixes #59
2019-08-29 13:36:18 +03:00
Sebastian Schmidt
d8eed924cc Add documentation about operator assignments 2019-08-29 13:21:54 +03:00
Sebastian Schmidt
b7233a3337 Implement operator assignments
Implements #34
2019-08-29 13:10:12 +03:00
Sebastian Schmidt
b9c4b34a2f Make builtin len support tuples
Implements #41
2019-08-29 11:10:54 +03:00
Sebastian Schmidt
95ba26a2cd Fix doctest for context creation macro
Relates to #48
2019-08-29 10:50:32 +03:00
Sebastian Schmidt
60b6cdf180 Add documentation about context creation macro
Implements #48
2019-08-29 10:47:58 +03:00
Sebastian Schmidt
3670bcaf63 Add comments to code in docs 2019-08-29 10:33:12 +03:00
Sebastian Schmidt
88559d5493 Add some information about contexts to docs 2019-08-29 10:30:55 +03:00
Sebastian Schmidt
2399df16a1 Run rustfmt 2019-08-29 10:02:05 +03:00
Sebastian Schmidt
6ace829117 Create mutable context when using eval functions without context
While this is a tiny hit on performance, it is something that the user probably wants.
It specifically prevents the user from seeing ContextNotManipulable errors when using the full power of evalexpr in the simplest eval calls.

Implements #45
2019-08-29 09:44:14 +03:00
Sebastian Schmidt
6b1706f68f Run rustfix
Relates to #55
2019-08-29 09:03:31 +03:00
Sebastian Schmidt
fa0a021d71 Update use statements to Rust 2018
Relates to #55
2019-08-29 09:02:15 +03:00
Sebastian Schmidt
0c5d032b37 Merge remote-tracking branch 'origin/master' 2019-08-29 08:57:07 +03:00
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
Atul Bhosale
311c70a823
Update crate for Rust 2018 using 'cargo fix --edition' 2019-06-06 23:23:30 +05:30
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