Commit Graph

195 Commits

Author SHA1 Message Date
Sebastian Schmidt
0af5e3ed32 Update changelog 2019-04-13 18:27:53 +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
f6c8689303 fixup! Builtin string functions - downcase, len, match(regex), replace(regex), trim, upcase. New dependency regex. 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
c2cbc0b941 Add Cargo.lock to repository 2019-04-12 18:47:05 +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
725472ef96 (cargo-release) start next development iteration 4.1.0 2019-03-31 15:47:23 +02:00
Sebastian Schmidt
62cd548f3c (cargo-release) version 4.1.0 2019-03-31 15:47:10 +02:00
Sebastian Schmidt
3dd6892a80 Prepare 4.1.0 release 2019-03-31 15:46:58 +02:00
Sebastian Schmidt
2caf000584 Export expect_function_argument_amount 2019-03-31 15:46:22 +02:00
Sebastian Schmidt
05c032fcba (cargo-release) start next development iteration 4.0.0 2019-03-30 11:58:22 +01:00
Sebastian Schmidt
16aecd0925 (cargo-release) version 4.0.0 2019-03-30 11:55:27 +01:00
Sebastian Schmidt
1bcbe8cede Set next release goal to 4.0.0 2019-03-30 11:54:56 +01: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
e19770b517 (cargo-release) start next development iteration 3.1.0 2019-03-28 16:30:46 +01:00
Sebastian Schmidt
b4b53d0af0 (cargo-release) version 3.1.0 2019-03-28 16:30:41 +01:00
Sebastian Schmidt
c0906bbf2d (cargo-release) version 3.1.0-rc.2 2019-03-28 15:44:45 +01:00
Sebastian Schmidt
c63206fa17 Add derive(Default) to HashMapContext 2019-03-28 15:44:25 +01:00
Sebastian Schmidt
e8578bf175 (cargo-release) version 3.1.0-rc.1 2019-03-28 15:42:18 +01:00
Sebastian Schmidt
862963d447 Prepare 3.1.0 release 2019-03-28 15:42:11 +01:00
Sebastian Schmidt
17bedddb11 Add serde support for HashMapContext
Relates to #33
2019-03-28 15:40:02 +01:00
Sebastian Schmidt
0cd6acfeb6 (cargo-release) start next development iteration 3.0.0 2019-03-28 15:04:01 +01:00
Sebastian Schmidt
c77629bfac (cargo-release) version 3.0.0 2019-03-28 15:03:56 +01:00
Sebastian Schmidt
606c358cc9 Make operator table one-columned 2019-03-28 15:01:20 +01:00
Sebastian Schmidt
6f384d6a6b (cargo-release) version 3.0.0-rc.2 2019-03-28 14:51:39 +01:00
Sebastian Schmidt
e56afad25f Add release name to change log and prepare for next release 2019-03-28 12:12:00 +01:00
Sebastian Schmidt
dd19870c44 (cargo-release) version 3.0.0-rc.1 2019-03-28 12:10:19 +01:00
Sebastian Schmidt
aeb584edca Add quickstart documentation with chain and assign features 2019-03-28 12:09:46 +01:00
Sebastian Schmidt
9faf781623 Update change log 2019-03-28 11:55:27 +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
451a3aa97e Fix release date of 2.0.0 in change log 2019-03-28 08:48:18 +01:00