Commit Graph

394 Commits

Author SHA1 Message Date
Stephen Chung
538af8caee Scope::clone_visible clones value access mode also. 2022-01-27 16:58:11 +08:00
Stephen Chung
aee35e5f20 Add DebuggingPackage. 2022-01-27 16:58:11 +08:00
Stephen Chung
fc87dec128 Add debugging interface. 2022-01-27 16:58:11 +08:00
Stephen Chung
69dab31617 Remove need for default features in dependencies. 2022-01-27 08:22:20 +08:00
Stephen Chung
d8a6b93f43 Fix off-by-one position error after comment line. 2022-01-24 16:06:41 +08:00
Stephen Chung
8d34ffb9f5 Fix bug in try block. 2022-01-24 08:34:21 +08:00
Stephen Chung
922931f51d Bump version. 2022-01-23 21:49:46 +08:00
Stephen Chung
97be256a1a Fix bug with optimizing op-assignment operators. 2022-01-23 21:09:37 +08:00
Stephen Chung
f0781c9736 Properly handle \r\n pairs in doc-comments. 2022-01-17 23:15:51 +08:00
Stephen Chung
d58df1fb34 Engine::gen_fn_signatures enumerates non-standard external packages. 2022-01-17 23:15:22 +08:00
Stephen Chung
5232bbbff8 Add get/set methods to arrays, blobs, maps and strings. 2022-01-17 10:21:03 +08:00
Stephen Chung
3667761340 Fix bugs and add comments to standard library. 2022-01-15 23:34:38 +08:00
Stephen Chung
00b189d0c6 Replace Cow<str> in Scope with SmartString. 2022-01-15 11:26:43 +08:00
Stephen Chung
a8ec984b0f Fix unsafe violation in for loop. 2022-01-15 10:18:16 +08:00
Stephen Chung
e2e0b8d083 Fix Array::chop. 2022-01-14 10:04:24 +08:00
Stephen Chung
25f54c0ea5 Pretty-display return types. 2022-01-13 22:51:10 +08:00
Stephen Chung
5ab7c59ba0 Fix Array::pad infinite loop. 2022-01-13 22:05:07 +08:00
Stephen Chung
a3a527923a Fix metadata param name in JSON. 2022-01-13 18:13:38 +08:00
Stephen Chung
0f4e8848f9 Extract index calculataion into functions. 2022-01-13 18:13:27 +08:00
Stephen Chung
6dedb1ed9f Fix no_std builds. 2022-01-11 11:33:54 +08:00
Stephen Chung
00255a9b78 Merge 1.3.1 into 1.4.0. 2022-01-11 09:05:18 +08:00
Stephen Chung
80edb1200d Fix Array::pad limits. 2022-01-06 15:30:17 +08:00
Stephen Chung
97295a66da Fix test. 2022-01-05 13:24:52 +08:00
Stephen Chung
8961f36e8e Move bit-fields into new package. 2022-01-03 23:10:20 +08:00
Stephen Chung
43363e0660 Reserve is keyword. 2021-12-24 14:59:14 +08:00
Stephen Chung
422db4269e Allow multiple packages in def_package. 2021-12-22 12:41:55 +08:00
Stephen Chung
b85a9b3c1c Extract doc-comment on plugin functions. 2021-12-21 16:14:07 +08:00
Stephen Chung
bca9fe53b0 New syntax for def_package. 2021-12-20 11:42:39 +08:00
Stephen Chung
541ef319bb Merge branch 'v1.3-fixes' 2021-12-18 18:22:20 +08:00
Stephen Chung
9736171089 Fix bug in hex parsing for negative numbers. 2021-12-18 17:07:30 +08:00
Stephen Chung
fc84600b22 Add NativeCallContext::call_fn 2021-12-18 12:29:04 +08:00
Stephen Chung
b1b2c62d7d Merge branch 'v1.3-fixes' 2021-12-16 22:40:25 +08:00
Stephen Chung
10fa6844c4 Fix custom syntax with method calls. 2021-12-16 22:40:10 +08:00
Stephen Chung
fbc2b1f13d Allow non-custom reserved symbols in custom syntax. 2021-12-16 18:01:49 +08:00
Stephen Chung
f92cbe1f6d Merge branch 'v1.3-fixes' 2021-12-16 16:10:39 +08:00
Stephen Chung
224aa0ea68 Allow custom syntax inside binary operator expressions. 2021-12-16 16:06:44 +08:00
Stephen Chung
abbfa3777d Add more range API's. 2021-12-15 22:12:51 +08:00
Stephen Chung
ef14079c61 Add ranges. 2021-12-15 12:06:17 +08:00
Stephen Chung
93e3c4c10a Compact BLOB display. 2021-12-13 09:40:43 +08:00
Stephen Chung
6af406bafc Add parse/write to blobs. 2021-12-12 16:29:54 +08:00
Stephen Chung
780c36e675 Simplify if let. 2021-12-12 12:33:22 +08:00
Stephen Chung
675ddb89f9 Add "" and `` in string literals. 2021-12-09 13:34:51 +08:00
Stephen Chung
d9d44a9683 Add Engine::register_type_with_name_raw. 2021-12-09 12:49:12 +08:00
Stephen Chung
4421f33b2c Fix bug in blob's. 2021-12-07 19:03:04 +08:00
Stephen Chung
5b64e0b383 Use deref for Expression. 2021-12-06 18:50:37 +08:00
Stephen Chung
cc98e82ea1 Include hashes in JSON output. 2021-12-06 11:12:54 +08:00
Stephen Chung
b8c4054c20 Add strict variables mode. 2021-12-04 17:57:28 +08:00
Stephen Chung
fd26654125 Add allow_looping. 2021-12-03 11:24:38 +08:00
Stephen Chung
7cd76c6d18 Add language options. 2021-12-03 11:16:35 +08:00
Stephen Chung
ec95e5ca97 Merge branch 'v1.2-fixes' 2021-12-02 14:30:25 +08:00
Stephen Chung
068e8c647e Support Option in from_dynamic. 2021-12-02 14:14:57 +08:00
Stephen Chung
41dd989866 Support deserialization into byte arrays for BLOB's via serde_bytes. 2021-12-02 14:10:53 +08:00
Stephen Chung
70f4c53854 Trap out-of-bounds panic for BLOB's. 2021-12-02 13:09:59 +08:00
Stephen Chung
5363b0724f Support Option in from_dynamic. 2021-12-02 12:50:11 +08:00
Stephen Chung
ba0a6c667e Add FnPtr::call_within_context. 2021-11-29 12:43:59 +08:00
Stephen Chung
0ab86ac623 Move AST::new() and AST::new_with_source() to internals. 2021-11-29 10:58:46 +08:00
Stephen Chung
95dc2ad502 Remove fields and parameters under no_function. 2021-11-29 09:43:35 +08:00
Stephen Chung
9fa4d60336 Minor code and docs refactor. 2021-11-28 22:57:28 +08:00
Stephen Chung
c5317d7706 Deprecate NativeCallContext::new 2021-11-28 12:41:33 +08:00
Stephen Chung
30bfdd841a Add FnPtr::call. 2021-11-27 16:28:34 +08:00
Stephen Chung
d56585c877 Remove no_smartstring feature. 2021-11-27 14:24:36 +08:00
Stephen Chung
280b5b405e Make some new functions const. 2021-11-25 17:09:00 +08:00
Stephen Chung
1721d0dfa0 Bump version. 2021-11-24 08:57:43 +08:00
Stephen Chung
93b802effd Merge branch 'v1.2-fixes' 2021-11-23 22:46:16 +08:00
Stephen Chung
2b0b79870e Fix bug in array methods. 2021-11-23 22:37:18 +08:00
Stephen Chung
6ad7b344bf Add into_array and into_typed_array. 2021-11-23 12:45:59 +08:00
Stephen Chung
81df36667f Bump version. 2021-11-19 15:07:29 +08:00
Stephen Chung
0fd4fb4c16 Merge changelog. 2021-11-19 15:04:59 +08:00
Stephen Chung
2fffe31b59 Level up exports. 2021-11-16 12:26:37 +08:00
Stephen Chung
98707912e0 Convert for loop to iterator. 2021-11-15 14:30:00 +08:00
Stephen Chung
de906053ed Deprecate call_fn_dynamic into call_fn_raw. 2021-11-15 11:13:00 +08:00
Stephen Chung
615c3acad6 Use actual outer scope for function-bang calls. 2021-11-14 22:48:57 +08:00
Stephen Chung
c8aab47f50 Merge branch 'v1.1-fixes' 2021-11-13 10:01:55 +08:00
Stephen Chung
a227963f7a Fix unary parsing. 2021-11-13 09:50:49 +08:00
Stephen Chung
7f34e4ad99 Merge branch 'v1.1-fixes' 2021-11-11 21:47:45 +08:00
Stephen Chung
774fd7514e Fix bang function calls under no_closure. 2021-11-11 21:47:35 +08:00
Stephen Chung
f6dc440601 Add AST::iter_literal_variables. 2021-11-09 13:22:45 +08:00
Stephen Chung
e63cba9caf Merge branch 'v1.1-fixes' 2021-11-09 08:48:16 +08:00
Stephen Chung
5685ca8411 Fix floating-point display. 2021-11-09 08:46:02 +08:00
Stephen Chung
5083df3096 Propagate constants to functions for Engine::XXX_with_scope calls. 2021-11-08 22:16:28 +08:00
Stephen Chung
04c31fe1ff Bump version. 2021-11-06 00:04:52 +08:00
Stephen Chung
61cc3d0bf2 Merge branch 'v1.1-fixes' 2021-11-05 23:26:00 +08:00
Stephen Chung
eeca8c90aa Make sure the global namespace is always searched first. 2021-11-05 23:22:05 +08:00
Stephen Chung
46e99df9cd Reverse regression on string + operator. 2021-11-05 20:34:27 +08:00
Stephen Chung
affbb81d8a Add NativeCallContext::position. 2021-11-05 19:35:33 +08:00
Stephen Chung
231584824a Properly handle unary operators at beginning of statement. 2021-11-03 09:11:20 +08:00
Stephen Chung
7c6b444616 Fix display of 0.0. 2021-11-03 08:44:07 +08:00
Stephen Chung
ff9ac41da2 Merge branch 'v1.1-fixes' 2021-11-01 10:08:27 +08:00
Stephen Chung
2ea86c3987 Fix bug in assignment parsing. 2021-11-01 09:55:50 +08:00
Stephen Chung
b23bdb6d13 Remove unnecessary string builtins. 2021-11-01 09:42:22 +08:00
Stephen Chung
79dd3f8186 Add $$ marker to custom syntax. 2021-10-25 22:41:42 +08:00
Stephen Chung
96f08e8cad Merge branch 'v1.1-fixes' 2021-10-23 17:54:03 +08:00
Stephen Chung
4e965c3f3f Fix no_module+internals build. 2021-10-23 17:49:52 +08:00
Stephen Chung
34cf494545 Add Array::sort with no predicate. 2021-10-23 11:51:48 +08:00
Stephen Chung
65ef402440 Eliminate optimize module with no_optimize. 2021-10-21 19:17:34 +08:00
Stephen Chung
1c921f3784 Add dedup to array. 2021-10-21 17:59:54 +08:00
Stephen Chung
3f2dd23e6e Allow #[cfg(...)] in plugin functions. 2021-10-20 15:30:11 +08:00
Stephen Chung
c8e7c970d1 Add variants of Array methods taking FnPtr with function names. 2021-10-20 11:06:38 +08:00
Stephen Chung
3001e90775 Deprecate From<EvalAltResult> for Result<T, Box<EvalAltResult>> because it is clearer for code to explicitly wrap errors in Err. 2021-10-19 23:52:58 +08:00
Stephen Chung
6d31bb0d19 Do not inline error path functions. 2021-10-19 20:16:36 +08:00
Stephen Chung
2334cd8f56 Avoid cloning in array methods as much as possible. 2021-10-19 19:57:15 +08:00
Stephen Chung
6177a291e2 Bump version. 2021-10-11 17:57:11 +08:00
Stephen Chung
c768ef4ca9 Bump version. 2021-10-11 17:56:22 +08:00
Stephen Chung
504e695956 Turn on smartstring/serde with metadata. 2021-09-28 19:19:17 +08:00
Stephen Chung
87d48948f9 Merge branch 'bug-fixes' 2021-09-28 16:55:33 +08:00
Stephen Chung
0cde18d3b5 Bump version. 2021-09-28 16:51:23 +08:00
Stephen Chung
85dcd6e754 Fix bug with changing property of value obtained via index getter. 2021-09-28 15:59:46 +08:00
Stephen Chung
e963a7251c Check if empty string came from global instance. 2021-09-27 11:09:19 +08:00
Stephen Chung
fe47058add Merge branch 'bug-fixes' 2021-09-27 10:34:46 +08:00
Stephen Chung
6df2178460 Assume property getters are pure. 2021-09-27 10:34:24 +08:00
Stephen Chung
a130960627 Fix empty strings. 2021-09-26 21:25:29 +08:00
Stephen Chung
d791052d5c Add Engine::on_parse_token. 2021-09-24 18:00:48 +08:00
Stephen Chung
cd8af67842 Merge branch 'bug-fixes' 2021-09-24 09:27:45 +08:00
Stephen Chung
d9dca6ef98 Expore more internal data structures. 2021-09-24 09:26:35 +08:00
Stephen Chung
6e7fbfa66f Add pop to string. 2021-09-20 16:25:23 +08:00
Stephen Chung
71e8cf727d Use LazyCompact for SmartString. 2021-09-20 11:34:01 +08:00
Stephen Chung
e191f9d91e Merge branch 'bug-fixes' 2021-09-19 22:34:47 +08:00
Stephen Chung
caf3c7e698 Bump version. 2021-09-19 22:31:50 +08:00
Stephen Chung
5163fb0a33 Upgrade to rust-decimal 1.16 and add sin/cos/tan. 2021-09-15 10:41:35 +08:00
Stephen Chung
c231646197 Add sign function fixes. 2021-09-15 10:31:46 +08:00
Stephen Chung
6510b617fe Reduce usage of Default::default() 2021-09-11 19:40:40 +08:00
Stephen Chung
84be799403 Change StaticVec to 3 inline elements. 2021-09-10 20:25:22 +08:00
Stephen Chung
43de522568 Use option flags for certain AST nodes. 2021-09-10 20:23:59 +08:00
Stephen Chung
5ac33ce64d Do not export FloatWrapper under no_float. 2021-09-04 18:43:18 +08:00
Stephen Chung
791808d7d7 Categorize enhancements. 2021-09-03 21:01:07 +08:00
Stephen Chung
6a2c9f0293 Add ASTNode::position(). 2021-09-03 20:47:45 +08:00
Stephen Chung
cbe08fb64e Merge branch 'bug-fixes' 2021-09-03 10:19:58 +08:00
Stephen Chung
71711998f1 Fix bug in catch error variable. 2021-09-03 10:05:58 +08:00
Stephen Chung
65fbfe36e7 Merge branch 'bug-fixes' 2021-09-02 22:49:17 +08:00
Stephen Chung
457be797a2 Fixed bug in using error variable within catch block. 2021-09-02 22:17:45 +08:00
Stephen Chung
db3049e574 Engine::register_type_XXX available under no_object. 2021-08-23 23:10:54 +08:00
Stephen Chung
58352e00bd Prevent spill-over of new variables in Engine::call_fn. 2021-08-17 23:24:41 +08:00
Stephen Chung
9c6cea3c9f Add Scope::set_or_push. 2021-08-17 15:51:14 +08:00
Stephen Chung
0354f154ce Add Scope::is_constant. 2021-08-17 15:51:14 +08:00
Stephen Chung
114c93f430 Fix bug in custom syntax starting with disabled stardard keyword. 2021-08-17 15:51:14 +08:00
Stephen Chung
288d575046 Add log10 for Decimal. 2021-08-17 15:50:56 +08:00
Stephen Chung
180ad77224 Change Engine::consume_XXX to Engine::run_XXX. 2021-08-17 15:50:56 +08:00
Stephen Chung
e0125a1033 Allow self-terminating custom syntax. 2021-08-17 15:50:56 +08:00
Stephen Chung
3127f9a8af Add new constant from functions for Dynamic. 2021-08-17 15:50:56 +08:00
Stephen Chung
ffb1531e0e New constants for Dynamic. 2021-08-17 15:50:56 +08:00
Stephen Chung
94674679d9 Rename as_string and as_immutable_string. 2021-08-17 15:50:55 +08:00
Stephen Chung
b21deaf052 Support $symbol$ in custom syntax. 2021-08-17 15:50:55 +08:00
Stephen Chung
e0cae4546c Polyfiill some functions for decimal+no_float. 2021-08-17 15:50:54 +08:00
Stephen Chung
73c0ba4ec5 Add to CHANGELOG. 2021-08-17 15:46:21 +08:00
Stephen Chung
4807fdf1cf Loops cannot be pure. 2021-08-04 17:37:56 +08:00
Stephen Chung
b8485b1909 Fix bug in indexing. 2021-07-24 12:27:33 +08:00
Stephen Chung
9cb7610cc5 Unreserve begin, end, then, each, unless 2021-07-06 09:51:29 +08:00
Stephen Chung
b4da054bab Catch more parse errors. 2021-07-04 00:15:27 +08:00
Stephen Chung
f3541bae19 Update SmartString to work for no-std. 2021-07-01 18:44:01 +08:00
Stephen Chung
8c802dcd58 Fix optimizer bug. 2021-07-01 12:27:29 +08:00
Stephen Chung
f033896fec Add From<BTreeSet> and From<HashSet> for Dynamic. 2021-06-30 11:08:29 +08:00
Stephen Chung
0888738b75 Change AST::clone_source to AST::source_raw. 2021-06-28 13:53:30 +08:00
Stephen Chung
7196b017f5 Add is_odd, is_even and is_zero. 2021-06-27 22:10:52 +08:00
Stephen Chung
83297ffa00 Bump version to 1.0. 2021-06-24 11:50:03 +08:00
Stephen Chung
ba0cf80314 Prepare for 0.20.3 release. 2021-06-22 22:32:50 +08:00
Stephen Chung
4093727dcb New string functions. 2021-06-17 13:31:58 +08:00
Stephen Chung
40e33fa6f9 Add to_hex, to_octal and to_binary. 2021-06-16 23:49:18 +08:00
Stephen Chung
f9dcfeb1ad Check data size after assignments. 2021-06-11 19:59:50 +08:00
Stephen Chung
79d9977cd5 Change take_string and take_immutable_string to as_XXX. 2021-06-10 10:45:44 +08:00
Stephen Chung
a5031969ca New custom syntax expression types. 2021-06-10 10:16:39 +08:00
Stephen Chung
1e66f1963a Add counter variable to for statement. 2021-06-07 11:01:16 +08:00
Stephen Chung
989cb702c0 Use chars() to iterate strings. 2021-06-07 09:47:49 +08:00
Stephen Chung
71684f5e2a Implement bit-fields. 2021-06-02 14:29:18 +08:00
Stephen Chung
76bd48d0a6 Code style refinements. 2021-05-29 18:33:29 +08:00
Stephen Chung
cc3e2d79a5 Replace unwrap with expect. 2021-05-22 19:14:24 +08:00
Stephen Chung
dc9b4d7f4d Indexer as fallback to property. 2021-05-18 20:12:30 +08:00
Stephen Chung
3116a39331 Minor code refactor. 2021-05-18 12:24:11 +08:00
Stephen Chung
941e09d29d Guard against setters mutating constants, and allow pure setters. 2021-05-15 11:41:42 +08:00
Stephen Chung
202285f9ab Disallow pure setters. 2021-05-13 10:34:24 +08:00
Stephen Chung
9585de4ae4 Add Dynamic from shared. 2021-05-11 21:38:07 +08:00
Stephen Chung
97c8194d17 No need to specify number of variables added/removed for custom syntax. 2021-05-11 10:58:28 +08:00
Stephen Chung
fd19d625b0 Refine doc comments. 2021-05-10 11:07:19 +08:00
Stephen Chung
d230f448c0 Add no_smartstring to disable using SmartString. 2021-05-08 22:59:33 +08:00
Stephen Chung
aad842fe50 Remove Engine::enable_doc_comments. 2021-05-03 13:07:51 +08:00
Stephen Chung
13d5092c4d Allow setters returning values when return_raw. 2021-05-02 23:51:37 +08:00
Stephen Chung
9fabca5937 Bump version. 2021-05-02 20:36:59 +08:00
Stephen Chung
a5d4a0abb9 Disable on_progress with unchecked. 2021-04-25 15:27:58 +08:00
Stephen Chung
b5a2937336 Do not treat Expr::Index with pure index as pure. 2021-04-24 13:42:30 +08:00
Stephen Chung
a54fbb32ff Add no_position feature. 2021-04-22 23:02:25 +08:00
Stephen Chung
c5e716e71f Fix zero position bugs in array methods. 2021-04-19 15:11:03 +08:00
Stephen Chung
1be7e60be2 Automatic global module. 2021-04-17 17:25:35 +08:00
Stephen Chung
807a14eaa2 call_fn always evalutes AST. 2021-04-17 13:36:23 +08:00
Stephen Chung
6c92011ea1 Hide is_shared and is_locked under feature gates. 2021-04-17 12:03:29 +08:00
Stephen Chung
6eaee57578 Bump version. 2021-04-16 22:07:18 +08:00
Stephen Chung
e31506fe51 Bump version. 2021-04-16 21:59:11 +08:00
Stephen Chung
208e5fdbf4 New switch errors. 2021-04-16 13:28:36 +08:00
Stephen Chung
980a13ca42 Add switch case conditions. 2021-04-16 12:04:33 +08:00
Stephen Chung
8da4c0c2b2 Default switch case must be last. 2021-04-16 09:41:02 +08:00
Stephen Chung
40fda5139d Support negative index counting from end. 2021-04-10 15:00:03 +08:00
Stephen Chung
29d186b361 Put doc-comments under metadata flag. 2021-04-09 22:49:47 +08:00
Stephen Chung
0807c474a1 Revise using string interpolation. 2021-04-04 23:22:45 +08:00
Stephen Chung
20aaf1826a Fix builds. 2021-04-04 15:06:13 +08:00
Stephen Chung
e6c878edf3 Implement string interpolation. 2021-04-04 13:13:07 +08:00
Stephen Chung
b089d5b8f4 Fix bug in property setter op-assignment. 2021-04-03 11:12:35 +08:00
Stephen Chung
889edbef71 Allow cross-loading of relative file paths in FileModuleResolver. 2021-04-02 12:34:39 +08:00
Stephen Chung
294d233c02 Bump version. 2021-03-31 17:01:08 +08:00
Stephen Chung
98afb2e7d6 Fix feature builds. 2021-03-31 10:16:38 +08:00
Stephen Chung
b14d18934a Add Dynamic::clone_cast. 2021-03-30 18:57:16 +08:00
Stephen Chung
d756b7bac6 Rename FnWrongDefinition to WrongFnDefinition. 2021-03-30 11:39:00 +08:00
Stephen Chung
d2ded7733a Add support for line continuation and multi-line string literals. 2021-03-30 00:21:09 +08:00