Commit Graph

1678 Commits

Author SHA1 Message Date
Stephen Chung
08828dd8c1 Use .into() instead of Box::new() 2021-06-29 18:25:20 +08:00
Stephen Chung
4143ef1e3f Simplify Engine creation. 2021-06-29 17:47:31 +08:00
Stephen Chung
27c126d2f0 Make on_print/on_debug Option. 2021-06-29 17:42:03 +08:00
Stephen Chung
8f4a582f88 Remove free list of empty function resolution caches. 2021-06-28 22:06:46 +08:00
Stephen Chung
a13a724361 Fix builds. 2021-06-28 18:29:53 +08:00
Stephen Chung
e40e81ac1a Mark simple functions const. 2021-06-28 18:06:05 +08:00
Stephen Chung
0c99165007 Remove description. 2021-06-28 17:24:05 +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
1247b89352 Deprecate description for errors. 2021-06-24 14:55:53 +08:00
Stephen Chung
83297ffa00 Bump version to 1.0. 2021-06-24 11:50:03 +08:00
Stephen Chung
178fe6b978 Remove deprecated API. 2021-06-24 09:48:44 +08:00
Stephen Chung
2342777a13 Iterator reference parameters. 2021-06-21 19:12:28 +08:00
Stephen Chung
3b345acebf Impl returns closures. 2021-06-20 21:42:13 +08:00
Stephen Chung
4093727dcb New string functions. 2021-06-17 13:31:58 +08:00
Stephen Chung
425e038f4b Split FnPtr into own file. 2021-06-17 09:50:32 +08:00
Stephen Chung
40e33fa6f9 Add to_hex, to_octal and to_binary. 2021-06-16 23:49:18 +08:00
Stephen Chung
a9ed434c73 Refine error position for missing indexer. 2021-06-16 19:45:45 +08:00
Stephen Chung
0b028dc900 Fix decimal build. 2021-06-16 19:44:54 +08:00
Stephen Chung
c492fa3234 Do not export SmartString. 2021-06-16 19:02:37 +08:00
Stephen Chung
204dcf60ac Export Identifier only when internals. 2021-06-16 18:58:48 +08:00
Stephen Chung
e684626fc4 Remove unnecessary #[must_use]. 2021-06-16 18:58:32 +08:00
Stephen Chung
42a14ab4cc Make file structures consistent. 2021-06-16 18:36:33 +08:00
Stephen Chung
aa2e04bd25 Simplify Expr::Export. 2021-06-16 16:35:56 +08:00
Stephen Chung
0a857e6944 Remove position for catch keyword. 2021-06-16 16:15:29 +08:00
Stephen Chung
03cb398edf Better implementation for Expression::get_literal_value. 2021-06-16 12:24:36 +08:00
Stephen Chung
b5898f451e Fix no_closure build. 2021-06-14 12:09:54 +08:00
Stephen Chung
bbf3d31fbf Code style refactor. 2021-06-14 12:02:22 +08:00
Stephen Chung
743d48f44f Code style cleanup. 2021-06-13 17:41:34 +08:00
Stephen Chung
8ca24059b1 Add #[must_use] 2021-06-12 22:47:43 +08:00
Stephen Chung
68ea8c27fd Fix unchecked.
Do not duplicate data size checking.
2021-06-12 10:26:50 +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
c3eb6d65f6 Refine Target variant names. 2021-06-08 23:40:21 +08:00
Stephen Chung
6397ce671e Simplify code. 2021-06-08 23:40:10 +08:00
Stephen Chung
bcf82dafcb Fix tests. 2021-06-08 19:30:13 +08:00
Stephen Chung
ae9f4b5b71 Remove collect() with exact sizes. 2021-06-08 15:48:55 +08:00
Stephen Chung
2c21928f67 Simplify constant function call arguments. 2021-06-08 14:46:49 +08:00
Stephen Chung
3e08160653 Simplify variable name parsing. 2021-06-07 11:43:00 +08:00
Stephen Chung
411b718a3b Fix test. 2021-06-07 11:21:45 +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
859a18c6fd Fix Dynamic hashing. 2021-06-06 14:47:32 +08:00
Stephen Chung
c02d702081 Use StaticVec. 2021-06-06 12:17:04 +08:00
Stephen Chung
a530fbf4ff Remove unnecessary raw stirngs. 2021-06-05 15:26:43 +08:00
Stephen Chung
3371eed411 Use write_str. 2021-06-04 14:23:40 +08:00
Stephen Chung
e35122ae5d Disallow registering indexers for integers. 2021-06-04 14:23:30 +08:00
Stephen Chung
99e06abd94 Fix test. 2021-06-02 15:18:09 +08:00
Stephen Chung
4cf6550fc6 Fix tests. 2021-06-02 15:05:33 +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
5f36f1a28c Remove PluginFunction::is_variadic. 2021-05-29 18:32:34 +08:00
Stephen Chung
dfea3ed22a Code style refactor. 2021-05-25 10:54:48 +08:00
Stephen Chung
58d6a88bc4 Use checked exp for decimal. 2021-05-24 12:12:29 +08:00
Stephen Chung
98a232cb8c Prevent exp underflow. 2021-05-23 11:54:40 +08:00
Stephen Chung
d07d4d295d Fix tests. 2021-05-22 19:34:10 +08:00
Stephen Chung
cc3e2d79a5 Replace unwrap with expect. 2021-05-22 19:14:24 +08:00
Stephen Chung
1545b602a7 Streamline hashing function. 2021-05-19 20:26:11 +08:00
Stephen Chung
85a5aa14b3 Fix no_index build. 2021-05-18 22:03:34 +08:00
Stephen Chung
2ade56fd94 Fix no_index build. 2021-05-18 21:38:09 +08:00
Stephen Chung
dc9b4d7f4d Indexer as fallback to property. 2021-05-18 20:12:30 +08:00
Stephen Chung
e64dad4e9f Optimize scope. 2021-05-18 12:40:40 +08:00
Stephen Chung
70f09d1c84 Make tag i32 on 64-bit targets. 2021-05-18 12:24:23 +08:00
Stephen Chung
3116a39331 Minor code refactor. 2021-05-18 12:24:11 +08:00
Stephen Chung
d1fc362eec Handle constants propagation. 2021-05-16 21:21:13 +08:00
Stephen Chung
cce2e02428 Fix feature builds. 2021-05-15 11:56:19 +08:00
Stephen Chung
941e09d29d Guard against setters mutating constants, and allow pure setters. 2021-05-15 11:41:42 +08:00
Stephen Chung
565134c4da Fix bug in constants propagation. 2021-05-15 11:00:25 +08:00
Stephen Chung
4f14fd55f5 Small code refinements. 2021-05-14 19:21:28 +08:00
Stephen Chung
9585de4ae4 Add Dynamic from shared. 2021-05-11 21:38:07 +08:00
Stephen Chung
be052b2b26 Bump version of rust_decimal and add more functions. 2021-05-11 20:31:31 +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
2cf59e9954 Expose DynamicReadLock and DynamicWriteLoc under internals. 2021-05-10 09:43:45 +08:00
Stephen Chung
d230f448c0 Add no_smartstring to disable using SmartString. 2021-05-08 22:59:33 +08:00
Stephen Chung
2c0215ea3f Shrink arrays and use boxed slices. 2021-05-05 18:38:52 +08:00
Stephen Chung
13c620de4b Implement Eq and PartialEq for ScriptFnMetadata that sorts on function signature. 2021-05-04 10:19:08 +08:00
Stephen Chung
c61b118037 Fix decimal build. 2021-05-03 13:57:47 +08:00
Stephen Chung
c749bbb653 Reduce BTree sizes by boxing values. 2021-05-03 13:45:41 +08:00
Stephen Chung
aad842fe50 Remove Engine::enable_doc_comments. 2021-05-03 13:07:51 +08:00
Stephen Chung
bb5dc7b637 Add tag to Dynamic. 2021-05-02 23:57:35 +08:00
Stephen Chung
b091113334 Eliminate unnecessary data structures. 2021-04-27 22:28:01 +08:00
Stephen Chung
a5d4a0abb9 Disable on_progress with unchecked. 2021-04-25 15:27:58 +08:00
Stephen Chung
f81e3d6ff8 Fix unchecked builds. 2021-04-24 18:14:48 +08:00
Stephen Chung
41d3709db1 Fix decimal build. 2021-04-24 15:53:02 +08:00
Stephen Chung
c82a47ac26 Unchecked index access. 2021-04-24 14:47:20 +08:00
Stephen Chung
ce35f7fa72 Fix off by one error in optimizer. 2021-04-24 13:42:45 +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
61b559a58f Refine op-assignment. 2021-04-24 11:55:40 +08:00
Stephen Chung
dc3a217b2f ImmutableString += String optimized. 2021-04-23 23:37:33 +08:00
Stephen Chung
cc1f941875 Optimize op-assignment. 2021-04-23 23:37:10 +08:00
Stephen Chung
335ab64a2c Use SmartString inside ImmutableString. 2021-04-23 19:10:10 +08:00
Stephen Chung
fc782c5563 Refine posistion display. 2021-04-23 14:24:53 +08:00
Stephen Chung
1fbbb2a40d Fix doc test. 2021-04-22 23:09:10 +08:00
Stephen Chung
a54fbb32ff Add no_position feature. 2021-04-22 23:02:25 +08:00
Stephen Chung
fe37edd123 Add Stmt::FnCall. 2021-04-21 18:16:24 +08:00
Stephen Chung
cc546fcaab Add version to repl. 2021-04-21 17:39:45 +08:00
Stephen Chung
956c57e9d6 Fix no-std build. 2021-04-21 10:05:28 +08:00
Stephen Chung
815f7ba09e Remove Expr::FnPointer. 2021-04-20 23:40:52 +08:00
Stephen Chung
ce384d8bb0 Change FnPtr to SmartString. 2021-04-20 23:28:04 +08:00
Stephen Chung
8f1bff2ded Change hash to hashes. 2021-04-20 22:26:08 +08:00
Stephen Chung
61d06183ea Speed up Array/Map Dynamic construction. 2021-04-20 22:21:51 +08:00
Stephen Chung
8ff1f57900 Remove redundant std. 2021-04-20 19:19:35 +08:00
Stephen Chung
0f66c67f82 Do not unnecessarily use raw strings. 2021-04-20 12:01:35 +08:00
Stephen Chung
a186eb8d97 Fix hanging when parsing unterminated statements block. 2021-04-20 11:22:38 +08:00
Stephen Chung
46b22ddd96 Fix tests. 2021-04-19 18:08:29 +08:00
Stephen Chung
e88fb071f7 Fix module test. 2021-04-19 15:41:24 +08:00
Stephen Chung
c5e716e71f Fix zero position bugs in array methods. 2021-04-19 15:11:03 +08:00
Stephen Chung
1145c5a4c0 Update rust_decimal. 2021-04-18 21:35:55 +08:00
Stephen Chung
bd145bd080 Do not unnecessarily reindex module. 2021-04-17 22:19:48 +08:00
Stephen Chung
2efe9d08a4 Skip eval if statements are empty. 2021-04-17 22:19:34 +08:00
Stephen Chung
90198d5440 Fix test. 2021-04-17 18:59:20 +08:00
Stephen Chung
eefdc09352 Allow shadowing of global. 2021-04-17 18:40:16 +08:00
Stephen Chung
9a8da93145 Delay creation of global module until actually needed. 2021-04-17 18:10:57 +08:00
Stephen Chung
1be7e60be2 Automatic global module. 2021-04-17 17:25:35 +08:00
Stephen Chung
01f0cc028b Use no-std-compat to build no-std. 2021-04-17 15:15:54 +08:00
Stephen Chung
2f2b7403cb Streamline as_mut to &mut. 2021-04-17 13:54:24 +08:00
Stephen Chung
199df9aa4a Use deref for Target. 2021-04-17 13:36:51 +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
2b10c5c6c1 Correct position of negative numbers. 2021-04-16 21:59:05 +08:00
Stephen Chung
208e5fdbf4 New switch errors. 2021-04-16 13:28:36 +08:00
Stephen Chung
1f987ec61a Streamine StmtBlock. 2021-04-16 13:15:11 +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
187dbe537f Improve debug AST printing. 2021-04-13 15:52:45 +08:00
Stephen Chung
5a0199f44f Explanation of parse_string_literal return values. 2021-04-13 14:38:04 +08:00
Stephen Chung
44e2e6aeb4 Fix string handling at EOF. 2021-04-11 21:49:03 +08:00
Stephen Chung
ccbbf3eb34 Enhance floating-point display. 2021-04-11 11:20:34 +08:00
Stephen Chung
c1c1e5f684 Use string start position as error position. 2021-04-11 11:19:46 +08:00
Stephen Chung
6b4553ffc8 Fix panic with unterminated interpolated string. 2021-04-10 17:47:44 +08:00
Stephen Chung
40fda5139d Support negative index counting from end. 2021-04-10 15:00:03 +08:00
Stephen Chung
716e9cf779 Fix string parsing state. 2021-04-10 11:11:42 +08:00
Stephen Chung
42555ac732 Unify string continuation parsing. 2021-04-10 10:20:17 +08:00
Stephen Chung
4aaf957d73 Gate doc-comment tokenizing. 2021-04-09 23:13:33 +08:00
Stephen Chung
29d186b361 Put doc-comments under metadata flag. 2021-04-09 22:49:47 +08:00
Stephen Chung
0f2e7e3825 Fix builds and tests. 2021-04-06 23:28:22 +08:00
Stephen Chung
f17a826f99 Refine debug print-out. 2021-04-06 23:18:41 +08:00
Stephen Chung
7ec49a9510 Fix f32_feature with serde. 2021-04-06 23:18:28 +08:00
Stephen Chung
131147c65d Optimize Fn construct. 2021-04-06 12:26:38 +08:00
Stephen Chung
d3cfb3c605 Optimize position in variable access. 2021-04-05 23:59:15 +08:00
Stephen Chung
94fc5af285 Store short index in variable access. 2021-04-05 23:06:48 +08:00
Stephen Chung
a3ee0f4245 Fix no_index build. 2021-04-05 18:32:20 +08:00
Stephen Chung
f5d3a0ef4f Promote expr block. 2021-04-05 14:57:07 +08:00
Stephen Chung
00784d39ad PropertyExpected for map literal with interpolated key. 2021-04-05 14:51:26 +08:00
Stephen Chung
26bb88974a Add function for string + char. 2021-04-05 00:10:08 +08:00
Stephen Chung
e6ea006ac6 Fix builds. 2021-04-05 00:05:56 +08:00
Stephen Chung
8956a77c8c Add new state in TokenizeState to switch back to text mode. 2021-04-04 23:23:10 +08:00
Stephen Chung
0807c474a1 Revise using string interpolation. 2021-04-04 23:22:45 +08:00