Commit Graph

1451 Commits

Author SHA1 Message Date
Stephen Chung
521c8fad27 Streamline ref object backup. 2021-03-02 14:44:21 +08:00
Stephen Chung
b76e8da5ee Cache built-in functions to improve resolution speed. 2021-03-02 13:48:41 +08:00
Stephen Chung
67d277aa21 Disallow overriding keywords. 2021-03-01 22:44:56 +08:00
Stephen Chung
fc10df7d63 Keyword can no longer be overloaded. 2021-03-01 17:17:13 +08:00
Stephen Chung
b7e864bb78 Extract function resolution code. 2021-03-01 16:53:03 +08:00
Stephen Chung
b466d58192 Remove unnecessary AsRef and impl IntoIterator. 2021-03-01 15:58:11 +08:00
Stephen Chung
061fce1f02 No more pub_only. 2021-03-01 15:39:49 +08:00
Stephen Chung
1300ad8677 No need to copy sub-modules. 2021-03-01 14:54:20 +08:00
Stephen Chung
733f4af8b3 Fix no_std build. 2021-03-01 09:30:23 +08:00
Stephen Chung
8eee21ff38 Use object map as catch error value. 2021-02-28 14:38:34 +08:00
Stephen Chung
66b557692b Allow negative range step. 2021-02-27 15:27:40 +08:00
Stephen Chung
082111074e Encapsulate gen_call_signature. 2021-02-27 15:07:16 +08:00
Stephen Chung
c8addb45ac Set position for errors in native function call. 2021-02-27 15:06:57 +08:00
Stephen Chung
d935401b03 Allow evaluating AST in Engine::call_fn_dynamic. 2021-02-26 11:21:23 +08:00
Stephen Chung
3f4dba9dbc Build in operators between string and char. 2021-02-25 13:29:49 +08:00
Stephen Chung
f03983a9ca Expose Engine::map_type_name. 2021-02-25 11:04:01 +08:00
Stephen Chung
1c1dfc701f Fix Decimal. 2021-02-25 11:03:54 +08:00
Stephen Chung
9495d3f733 Separate op-assignment with other function calls. 2021-02-25 10:59:22 +08:00
Stephen Chung
49e5382ab0 Do not return default for comparisons between same types. 2021-02-25 10:59:11 +08:00
Stephen Chung
02057ef1d2 Avoid double checking of builtin's. 2021-02-24 23:23:32 +08:00
Stephen Chung
baaa0461bf Limit Dynamic parameters to 16. 2021-02-24 22:40:18 +08:00
Stephen Chung
37540fda12 Fix bug with op-assignment. 2021-02-24 16:17:04 +08:00
Stephen Chung
9d6ad2092c Fix decimal build. 2021-02-24 15:56:29 +08:00
Stephen Chung
4ac05aee8b Disallow implicit comparisons between different numeric types. 2021-02-24 15:45:29 +08:00
Stephen Chung
0d933d865a Do not test for built-in's when operands are not built-in. 2021-02-24 13:53:11 +08:00
Stephen Chung
c501b34191 Implement strings concat via Dynamic wildcards. 2021-02-24 11:28:21 +08:00
Stephen Chung
c739e54e5b Refine strings package. 2021-02-24 11:05:39 +08:00
Stephen Chung
8b67a9a9bc Do not test for op-assignment when not ending with '='. 2021-02-24 11:05:16 +08:00
Stephen Chung
71680e3c77 Extract op assignment into function. 2021-02-24 11:04:54 +08:00
Stephen Chung
6f876e85cc Always call native for op-assignment operators. 2021-02-23 20:32:50 +08:00
Stephen Chung
123e9d6901 Short-circuits op-assignment for indexing and dotting. 2021-02-23 20:03:28 +08:00
Stephen Chung
36420f0b99 Implement print/debug functions via Dynamic parameters. 2021-02-23 19:08:05 +08:00
Stephen Chung
ba2b0630f7 Add support for Dynamic wildcard arguments. 2021-02-23 16:06:36 +08:00
Stephen Chung
8248c9999d Add split version for chars. 2021-02-23 12:52:47 +08:00
Stephen Chung
e88713611c Add split for arrays. 2021-02-23 11:57:50 +08:00
Stephen Chung
ac3d8e35d4 Add splitn, rsplit and rsplitn equivalents to strings. 2021-02-23 11:56:04 +08:00
Stephen Chung
0b49865f29 Fix no_std build. 2021-02-21 14:41:20 +08:00
Stephen Chung
4120e3c88e Include decimal in generated docs. 2021-02-21 14:26:31 +08:00
Stephen Chung
54e26059dc Set correct position for system errors inside function calls. 2021-02-20 14:32:37 +08:00
Stephen Chung
72334f0c42 Lower release stack overflow protection limit. 2021-02-20 14:05:47 +08:00
Stephen Chung
5285dad1a8 Fix feature build. 2021-02-19 23:48:11 +08:00
Stephen Chung
182fc2c3d1 Check for constant values passed to methods. 2021-02-19 23:13:53 +08:00
Stephen Chung
724ad05916 Add wasm64 as potential target. 2021-02-19 15:50:48 +08:00
Stephen Chung
4e3ab7fa6a Add compiler guards for mutually-exclusive features. 2021-02-19 15:49:51 +08:00
Stephen Chung
b789c319e7 Rename serde_impl to serde. 2021-02-19 15:17:14 +08:00
Stephen Chung
bd5ff457d2 Built-in interop between FLOAT/Decimal and INT. 2021-02-19 11:47:26 +08:00
Stephen Chung
7b8322b6e1 Scope implements IntoIterator. 2021-02-18 23:35:22 +08:00
Stephen Chung
d2121e2183 Add operators between FLOAT/Decimal and INT. 2021-02-18 14:33:27 +08:00
Stephen Chung
9a9adbefcc Wrap eval errors in ErrorInFunctionCall. 2021-02-18 14:33:12 +08:00
Stephen Chung
f8a7ada2a2 Implement Add and AddAssign to Position, fix bug in Position::is_beginning_of_line 2021-02-18 10:47:57 +08:00
Stephen Chung
cc90b5ffab Remove unnecessary lifetimes. 2021-02-17 19:28:07 +08:00
Stephen Chung
678d0f5e33 Fix f32_float build. 2021-02-17 14:05:35 +08:00
Stephen Chung
a2277d07f3 Add arithmetic operators between FLOAT and INT. 2021-02-17 13:06:47 +08:00
Stephen Chung
b2ca8c34d1 Add atan2 and hypot functions. 2021-02-17 12:27:27 +08:00
Stephen Chung
909d48caed Provide short-cuts to Decimal calculations. 2021-02-15 17:42:33 +08:00
Stephen Chung
f5c2903071 Refine Decimal rounding. 2021-02-15 12:07:45 +08:00
Stephen Chung
40e4a92401 Support scientific notation for Decimal parsing. 2021-02-14 17:34:53 +08:00
Stephen Chung
fc21756785 Add rounding functions to Decimal numbers. 2021-02-13 23:25:22 +08:00
Stephen Chung
224d93f167 Add comparison operators for Decimals. 2021-02-13 23:01:34 +08:00
Stephen Chung
61a01ea957 Add comments to Union. 2021-02-13 23:01:26 +08:00
Stephen Chung
f498dc81a3 Fix codegen test. 2021-02-13 22:19:46 +08:00
Stephen Chung
3650b04c38 Add Decimal number type. 2021-02-13 20:57:56 +08:00
Stephen Chung
4fdd58f220 Change AST filters to Fn from FnMut. 2021-02-13 10:56:09 +08:00
Stephen Chung
2846d1b63f Change token to use FloatWrapper. 2021-02-12 23:07:28 +08:00
Stephen Chung
aea5ec50c9 Fix no-std build. 2021-02-11 21:46:11 +08:00
Stephen Chung
6f71367c15 Use scneitific notation when printing large or small floating-point numbers. 2021-02-11 21:28:07 +08:00
Stephen Chung
8ffb6c03b5 Add scientific notation to floats. 2021-02-11 19:20:30 +08:00
Stephen Chung
d49581356d Remove duplicated functions lookup for script function call. 2021-02-11 12:13:30 +08:00
Stephen Chung
645e1fe583 Add missing cases to Expr::walk. 2021-02-11 01:47:09 +08:00
Stephen Chung
61638d6566 Use ** for power/exponentiation. 2021-02-10 12:41:27 +08:00
Stephen Chung
8c26b49a39 Change trig functions to take/return radians. 2021-02-10 12:10:50 +08:00
Stephen Chung
8f47f7c9e2 Add new floating-point functions. 2021-02-09 15:57:38 +08:00
Stephen Chung
88b01d6aba Refine docs. 2021-02-09 14:22:55 +08:00
Stephen Chung
2dd5aceb1d Fix panic of continue/break/return in try-catch block. 2021-02-09 14:22:21 +08:00
Stephen Chung
e88e65f36e Fix bug with parsing empty statements. 2021-02-09 14:08:17 +08:00
Stephen Chung
58528db45c Encapsulate functions resolution cache into State API. 2021-02-07 17:56:29 +08:00
Stephen Chung
a76bed2f46 Use eval_statements_block when at global. 2021-02-07 17:06:33 +08:00
Stephen Chung
f388d22c0f Fix no_module build., 2021-02-07 15:52:06 +08:00
Stephen Chung
aafff4fb93 Use stacked functions resolution caches to further improve performance. 2021-02-07 15:41:40 +08:00
Stephen Chung
7b87f81850 Add has_override and script calls to function resolution cache. 2021-02-07 15:09:27 +08:00
Stephen Chung
a54b88a8b0 Dynamic::into_shared not available under no_closure. 2021-02-06 22:16:44 +08:00
Stephen Chung
dff124b242 Save functions resolution cache during script call. 2021-02-06 22:16:05 +08:00
Stephen Chung
c5e2620d0f Minor code refactors. 2021-02-03 19:14:26 +08:00
Stephen Chung
42058836ba Fix panic in property access parsing error. 2021-01-31 18:44:50 +08:00
Stephen Chung
7fc38d4cd2 Change rhaiscript.github.io to rhai.rs 2021-01-30 07:19:54 +08:00
Stephen Chung
bb925a697c Fix bug in Array::insert. 2021-01-29 22:29:36 +08:00
Stephen Chung
903b6d6795 Rename set_doc_comments to enable_doc_comments. 2021-01-28 16:59:19 +08:00
Stephen Chung
cef61bc924 Fix no_function build. 2021-01-28 16:48:56 +08:00
Stephen Chung
f76daadcba Refine FuncArgs trait. 2021-01-28 15:29:55 +08:00
Stephen Chung
d14168a419 Refine Dynamic::take_immutable_string when shared. 2021-01-27 18:34:32 +08:00
Stephen Chung
e902c74073 Add threading example. 2021-01-25 11:31:54 +08:00
Stephen Chung
c245fe88fd Allow stacking ! operators. 2021-01-24 21:21:15 +08:00
Stephen Chung
049f472ac9 Fix bug in internals. 2021-01-23 10:34:38 +08:00
Stephen Chung
3b42cc5bb2 Fix bug where plugin module parameters are consumed. 2021-01-23 09:37:27 +08:00
Stephen Chung
8aae3ac46c Add function name to NativeCallContext. 2021-01-21 21:49:25 +08:00
Stephen Chung
f6553c1426 Fix feature builds. 2021-01-21 10:32:05 +08:00
Stephen Chung
0f7b390881 Serialize Timestamp with type name instead of panic. 2021-01-19 14:22:55 +08:00
Stephen Chung
4a8debb5ed Fix builds. 2021-01-18 10:56:42 +08:00
Stephen Chung
ec272cf9b9 Add Serialize/Deserialize for Dynamic and ImmutableString. 2021-01-18 10:30:58 +08:00
Stephen Chung
6b5a14ee88 Fix compilation bug. 2021-01-18 10:23:41 +08:00
Stephen Chung
65621b79b1 Fix volatile warnings. 2021-01-16 14:46:03 +08:00
Ilya Lakhin
421baebbc1 Exposing AST functions shared module under internals feature 2021-01-16 01:38:50 +07:00
Stephen Chung
c4b6c31bf0 Use ahash as default hasher. 2021-01-15 23:52:56 +08:00
Stephen Chung
1c7884f0d8 Switch to fxhash for fast hashing. 2021-01-15 23:30:45 +08:00
Stephen Chung
92c7fd9e5b Better error messages. 2021-01-15 17:13:04 +08:00
Stephen Chung
3f44e2893c Wrap up 0.19.10. 2021-01-14 19:07:03 +08:00
Stephen Chung
fe65bf6137 Fix bug in optimizer. 2021-01-12 23:52:50 +08:00
Stephen Chung
8c47d61456 Refine documentation and comments. 2021-01-11 23:09:33 +08:00
Stephen Chung
5b9a18f5b8 Fix FileModuleResolver::clear_cache_for_path. 2021-01-10 19:34:26 +08:00
Stephen Chung
14fe4f9f1b Change resolve_ast return type. 2021-01-09 23:26:50 +08:00
Stephen Chung
0b6657d1b1 Fix clippy. 2021-01-09 17:13:34 +08:00
Stephen Chung
e5b345bca4 Fix feature builds. 2021-01-09 17:06:01 +08:00
Stephen Chung
ad250fc973 Recursive self-contained AST. 2021-01-09 16:52:22 +08:00
Stephen Chung
637f47d259 Split AST::set_source into set_source/clear_source. 2021-01-09 15:20:07 +08:00
Stephen Chung
1513e6ab6a Fix internals build. 2021-01-09 00:49:50 +08:00
Stephen Chung
bfe9ac2188 Fix feature builds. 2021-01-09 00:40:44 +08:00
Stephen Chung
0f1f6c4ad3 Add Engine::compile_to_self_contained. 2021-01-09 00:24:55 +08:00
Stephen Chung
b96c832141 Add EvalAltResult::clear_position(). 2021-01-08 14:29:57 +08:00
Stephen Chung
ec18bd26a2 Handle no-std without sync. 2021-01-07 22:52:20 +08:00
Stephen Chung
96b1e7777b Update URL links. 2021-01-07 17:30:06 +08:00
Stephen Chung
e059ca009c Fix feature builds. 2021-01-06 18:22:45 +08:00
Stephen Chung
a5d6392107 Use NonZero for limits. 2021-01-06 13:46:53 +08:00
Stephen Chung
3fbcefe0ed Move HashableHashMap to utils. 2021-01-05 18:37:07 +08:00
Stephen Chung
d5891d4802 Remove eval_expr_as_target. 2021-01-05 18:01:42 +08:00
Stephen Chung
cf9d35166d Remove hashing of the entire script by making Expr and Stmt Hash. 2021-01-04 11:58:24 +08:00
Stephen Chung
e2a47b2a65 Disallow duplicated function definitions. 2021-01-03 20:54:08 +08:00
Stephen Chung
103af43f68 Fix typo in sync. 2021-01-03 13:46:08 +08:00
Stephen Chung
33f7c8557c Put source into AST. 2021-01-03 13:30:01 +08:00
Stephen Chung
d3894e8aef Add #[inline] 2021-01-03 13:29:42 +08:00
Stephen Chung
70a0d6ce58 Make id_raw return Option<&ImmutableString> 2021-01-03 11:25:25 +08:00
Stephen Chung
e3b7aa47a0 Merge branch 'master' of https://github.com/schungx/rhai 2021-01-03 11:15:57 +08:00
Ilya Lakhin
85ec781a35 Module::id_raw became crate-public 2021-01-03 09:29:50 +07:00
Ilya Lakhin
acbf5d8723 AST::set_source affects internal module id 2021-01-03 09:29:50 +07:00
Stephen Chung
1bbf473ec7 Add source info to native calls. 2021-01-03 00:20:13 +08:00
Stephen Chung
ef48f47b74 Refine docs and comments etc. 2021-01-02 23:30:10 +08:00
Stephen Chung
5a3bbaa322 Reduce size of FnPtr. 2021-01-02 13:37:40 +08:00
Stephen Chung
05fa8460a3 Remove unnecessary err.fill_position() 2021-01-02 13:29:16 +08:00
Stephen Chung
0a69caaf6d Refine API for contexts. 2021-01-01 17:05:06 +08:00
Stephen Chung
8f7a588ac3 Fix no_std. 2020-12-30 22:37:22 +08:00
Stephen Chung
ba7f8c6391 Propagate source info. 2020-12-30 21:12:51 +08:00
Stephen Chung
386e34aacd Fix no_module feature. 2020-12-30 15:37:39 +08:00
Stephen Chung
db5b855dea Replace - with &ndash; 2020-12-29 23:01:34 +08:00
Stephen Chung
a45876856d Enhance rhai-repl. 2020-12-29 22:04:31 +08:00
Stephen Chung
049ad3b6fd Move rhai-repl and rhai-doc to bin. 2020-12-29 15:36:42 +08:00
Stephen Chung
2858aa3b2f Avoid calling token mapper if none is specified. 2020-12-29 13:12:11 +08:00
Stephen Chung
13f5cec291 Fix call stack limits. 2020-12-29 12:29:45 +08:00
Stephen Chung
41c6f985f5 Fix bug with tokenizing identifiers. 2020-12-29 11:37:15 +08:00
Stephen Chung
eca8212f38 More code refinements. 2020-12-29 10:41:20 +08:00
Stephen Chung
e481a8019d Simplify code and better error messages. 2020-12-28 14:21:13 +08:00
Stephen Chung
5c813ca7c0 Code cleanup. 2020-12-28 09:49:54 +08:00
Stephen Chung
6b8d78d64c Streamline parsing. 2020-12-27 16:50:48 +08:00
Stephen Chung
48af8719e7 Fix closure property access. 2020-12-27 11:50:24 +08:00
Stephen Chung
88f63fa24b Refine docs. 2020-12-26 23:21:16 +08:00
Stephen Chung
66d3af256e Enhance custom operators. 2020-12-26 23:21:09 +08:00
Stephen Chung
0a35c4cb41 Change custom precedence to Option<NonZeroU8>. 2020-12-26 17:42:19 +08:00
Stephen Chung
dc4e52e795 Code enhancements. 2020-12-26 13:05:57 +08:00
Stephen Chung
822fe80105 Reduce redirections. 2020-12-25 11:02:29 +08:00
Stephen Chung
8f969b1ab5 Reduce indirections. 2020-12-24 23:22:50 +08:00
Stephen Chung
363085efc3 Map actual 0 hash to 42. 2020-12-24 18:43:04 +08:00
Stephen Chung
8506640073 Use NonZeroU64 for function hashes. 2020-12-24 16:32:43 +08:00
Stephen Chung
c81a59435b Make Scope Clone + Hash. 2020-12-24 09:42:03 +08:00
Stephen Chung
9fd7e01197 Simplify code. 2020-12-23 23:29:19 +08:00
Stephen Chung
08e7ad8c09 Add deprecated packages API. 2020-12-23 15:30:35 +08:00
Stephen Chung
cebbc2b607 Fix duplicate Ident export. 2020-12-23 12:11:53 +08:00
Stephen Chung
f55a56c6bc Engine::register_global_module and Engine::register_static_module must be passed shared Module. 2020-12-23 10:08:43 +08:00
Stephen Chung
15fb03218c Rename packages to global modules. 2020-12-22 23:45:14 +08:00
Stephen Chung
eb46ec8296 Simplify Imports. 2020-12-22 22:36:36 +08:00
Stephen Chung
0157f912e0 Remove PackageLibrary and PackagesCollection. 2020-12-22 22:36:30 +08:00
Stephen Chung
2a7e6c0884 Fixup docs. 2020-12-22 22:35:25 +08:00
Stephen Chung
2e7ec8f1db IdentX -> Ident. 2020-12-22 16:45:56 +08:00
Stephen Chung
206400b187 Fix serde feature. 2020-12-22 15:27:27 +08:00
Stephen Chung
10da4d8976 LexError directly to ParseError. 2020-12-22 11:55:51 +08:00
Stephen Chung
8c41e549f7 Add Engine::gen_fn_metadata_with_ast_to_json. 2020-12-22 11:13:13 +08:00
Stephen Chung
ff67efc6d5 Add source to contexts. 2020-12-21 23:12:45 +08:00
Stephen Chung
5ac83f0f46 Add context source to on_debug. 2020-12-21 22:04:46 +08:00
Stephen Chung
2955a4ab64 Fix unary operators binding. 2020-12-21 17:39:37 +08:00
Stephen Chung
730a7320d6 Run eval with new State. 2020-12-20 23:46:46 +08:00
Stephen Chung
cec27846ea Simplify code. 2020-12-20 23:25:11 +08:00
Stephen Chung
f99703f951 Add Engine::disable_doc_comments and smarter doc-comments treatment. 2020-12-20 20:05:23 +08:00
Stephen Chung
22039b24b3 Add export to JSON. 2020-12-20 12:27:47 +08:00
Stephen Chung
c6a3ce2cd5 Add metadata export to JSON. 2020-12-19 19:42:18 +08:00
Stephen Chung
0182b2d3f4 Correct speed claim and others in docs. 2020-12-19 17:46:34 +08:00
Stephen Chung
d73f3a1d60 Add functions lookup cache. 2020-12-18 23:47:17 +08:00
Stephen Chung
db7b9cb0f9 Native only if function call is not a valid identifier. 2020-12-18 23:03:56 +08:00
Stephen Chung
882b26d2a1 Change ScriptFnMetadata to hold references. 2020-12-18 16:31:44 +08:00
Stephen Chung
719f0babbf Fix comments parsing. 2020-12-18 16:07:19 +08:00
Stephen Chung
f8c14ba1c4 Add look-ahead to custom syntax parser. 2020-12-15 19:23:30 +08:00
Stephen Chung
17310ef576 Encapsulate structures. 2020-12-14 23:05:13 +08:00
Stephen Chung
6f2fecb76b Add type iterator docs. 2020-12-14 15:15:05 +08:00
Stephen Chung
ecc08271d9 Include actual tokens in custom syntax node. 2020-12-13 14:31:24 +08:00
Stephen Chung
87174de051 Add doc-comment to function metadata. 2020-12-12 20:09:29 +08:00
Stephen Chung
26449a9f1c Add ScriptFnMetadata. 2020-12-12 18:44:28 +08:00
Stephen Chung
1087c338bd Change output of AST::iter_functions. 2020-12-12 16:31:13 +08:00
Stephen Chung
dbdb8f43b7 Change AST to struct. 2020-12-12 15:57:55 +08:00
Stephen Chung
40b6a014ae Provide Position to debug. 2020-12-12 11:47:18 +08:00
Stephen Chung
5443368359 Pass Position into function calls. 2020-12-12 11:15:09 +08:00
Stephen Chung
4438c358d5 on_progress takes u64. 2020-12-12 10:10:27 +08:00
Stephen Chung
bed29da71a Use ImmutableString. 2020-12-11 12:57:07 +08:00
Stephen Chung
99dd7a6481 Share constant variables for closures. 2020-12-09 21:06:36 +08:00
Stephen Chung
dbee0eb0f5 Rename AccessType to ReadWrite and ReadOnly. 2020-12-09 18:37:52 +08:00