Stephen Chung
|
41366d08fe
|
Fix tests and packages for all features.
|
2020-04-27 22:52:20 +08:00 |
|
Stephen Chung
|
d3a97dc86b
|
Remove EntryRef from Scope.
|
2020-04-27 22:49:09 +08:00 |
|
Stephen Chung
|
d043300ae2
|
Reduce unnecessary Option's.
|
2020-04-27 21:28:31 +08:00 |
|
Stephen Chung
|
c2bb1f48c2
|
Reduce size of scope entry.
|
2020-04-27 21:14:34 +08:00 |
|
Stephen Chung
|
43fdf3f962
|
FunctionsLib always exist.
|
2020-04-27 20:43:55 +08:00 |
|
Stephen Chung
|
b3e4659790
|
Encapsulate index values into StaticVec type.
|
2020-04-27 20:25:20 +08:00 |
|
Stephen Chung
|
5afeba6fd1
|
No need to return value for Scope::get.
|
2020-04-27 11:24:58 +08:00 |
|
Stephen Chung
|
07c5abcc02
|
Remove RefCell in Scope.
|
2020-04-27 09:36:31 +08:00 |
|
Stephen Chung
|
ce121ed6af
|
Add comments and minor refactor.
|
2020-04-26 21:48:49 +08:00 |
|
Stephen Chung
|
f5c7d7cd0d
|
Reduce memory footprint of Target.
|
2020-04-26 19:37:32 +08:00 |
|
Stephen Chung
|
33d3e34908
|
Deep linking for dot/index chains.
|
2020-04-26 18:04:07 +08:00 |
|
Stephen Chung
|
5da9bc0f98
|
Merge pull request #6 from schungx/master
Avoid copying iterator sources.
|
2020-04-26 17:03:28 +08:00 |
|
jhwgh1968
|
e59f6939f7
|
Added basic Plugin trait and test
|
2020-04-25 19:15:06 -05:00 |
|
Stephen Chung
|
9998cf8890
|
Avoid copying iterator sources.
|
2020-04-24 22:54:56 +08:00 |
|
Stephen Chung
|
3cb3dc8e4f
|
Fix shift function.
|
2020-04-24 20:05:34 +08:00 |
|
Stephen Chung
|
fb8459d4de
|
Remove unnecessary usings.
|
2020-04-24 20:05:28 +08:00 |
|
Stephen Chung
|
b6d839c8a9
|
Fix no_std build.
|
2020-04-24 12:39:24 +08:00 |
|
Stephen Chung
|
5aaaa7be3b
|
Simplify parsing by expecting the tokens stream will never be exhausted.
|
2020-04-23 13:24:24 +08:00 |
|
Stephen Chung
|
a4bf572d5a
|
Filter out reg_test so it doesn't prevent compiling.
|
2020-04-23 13:23:25 +08:00 |
|
Stephen Chung
|
5b41985ccc
|
Fix doc test in on_debug.
|
2020-04-23 13:22:53 +08:00 |
|
Stephen Chung
|
e7cc403381
|
Warn against eval in method-call style.
|
2020-04-23 13:22:28 +08:00 |
|
Stephen Chung
|
05bad53011
|
Encapsulate function calls and handle map property access more efficiently.
|
2020-04-23 10:21:02 +08:00 |
|
Stephen Chung
|
ef9d870a82
|
Remove builtin.rs
|
2020-04-22 19:28:00 +08:00 |
|
Stephen Chung
|
fbfea60903
|
Disallow assignments in expressions.
|
2020-04-22 17:37:06 +08:00 |
|
Stephen Chung
|
7df36033c4
|
Warn against === and !==.
|
2020-04-22 17:36:51 +08:00 |
|
Stephen Chung
|
9a1c715aad
|
Refine package API.
|
2020-04-22 14:55:40 +08:00 |
|
Stephen Chung
|
c40c0a0bc3
|
Add From<Vec<T>> and From<HashMap<String, T>> for Dynamic.
|
2020-04-22 14:07:34 +08:00 |
|
Stephen Chung
|
c69647d9fd
|
Change Dynamic::from_xxx to From<xxx> impl.
|
2020-04-22 12:12:13 +08:00 |
|
Stephen Chung
|
69733688bf
|
Make all public API's return Box<EvalAltResult> to reduce footprint.
|
2020-04-21 23:25:12 +08:00 |
|
Stephen Chung
|
0a75479637
|
Refine packages plumbing.
|
2020-04-21 23:01:10 +08:00 |
|
Stephen Chung
|
e394824bf3
|
Fixes.
|
2020-04-21 00:24:25 +08:00 |
|
Stephen Chung
|
0306d15c04
|
Split core and standard libraries into packages.
|
2020-04-21 00:11:25 +08:00 |
|
Stephen Chung
|
976f3a7f6d
|
Avoid an allocation in each function registration.
|
2020-04-20 12:43:34 +08:00 |
|
Stephen Chung
|
a1e33af5a0
|
Reduce size of Position by limiting resolution to 16 bits.
|
2020-04-20 11:08:54 +08:00 |
|
Stephen Chung
|
642533aef6
|
Extract function registration into a macro to prepare for future packages support.
|
2020-04-19 22:58:44 +08:00 |
|
Stephen Chung
|
b23fd6e20a
|
Reshuffle code sections.
|
2020-04-19 18:33:02 +08:00 |
|
Stephen Chung
|
d3d62c7dd9
|
Anticipate number of functions to be registered.
|
2020-04-19 13:40:11 +08:00 |
|
Stephen Chung
|
1ebdf6dcfc
|
Add one more level of Boxing for Dynamic::Variant to reduce size.
|
2020-04-18 12:36:10 +08:00 |
|
Stephen Chung
|
a0bc49c867
|
Reduce size of Dynamic by boxing large types.
|
2020-04-18 11:10:03 +08:00 |
|
Stephen Chung
|
f5fff828e8
|
Box errors to reduce return type footprint.
|
2020-04-18 00:14:33 +08:00 |
|
Stephen Chung
|
65d611b976
|
FIX: no_float errors.
|
2020-04-17 20:08:41 +08:00 |
|
Stephen Chung
|
c5f66e932b
|
Simplify parsing by introducing an EOF token.
|
2020-04-17 20:01:41 +08:00 |
|
Stephen Chung
|
5d9a99cefc
|
Refine postfix operators handling.
|
2020-04-17 19:00:52 +08:00 |
|
Stephen Chung
|
3a93ab8240
|
Make FunctionsLib a HashMap.
|
2020-04-16 23:58:57 +08:00 |
|
Stephen Chung
|
f8e9d66a0b
|
Remove lifetime from Engine.
|
2020-04-16 23:31:48 +08:00 |
|
Stephen Chung
|
4f2350734f
|
Avoid copying indexed value if not necessary.
|
2020-04-16 12:08:28 +08:00 |
|
Stephen Chung
|
1ace4b474c
|
Favor matching on Union's instead of downcast::<T>, as_xxx() or is::<T>.
|
2020-04-16 10:24:30 +08:00 |
|
Stephen Chung
|
c799a4567a
|
Remove IndexSourceType.
|
2020-04-16 00:05:07 +08:00 |
|
Stephen Chung
|
a35518fe49
|
Split tokenizer into separate file, plus fix no_std feature.
|
2020-04-15 22:21:23 +08:00 |
|
Stephen Chung
|
78cd53db09
|
Streamline tokens reading and reformat code for easier reading.
|
2020-04-15 21:41:28 +08:00 |
|
Stephen Chung
|
f600e59401
|
Fix bug with casting from float.
|
2020-04-13 23:31:05 +08:00 |
|
Stephen Chung
|
20bc66c5f6
|
Merge branch 'master' into enum-Dynamic
|
2020-04-13 21:34:20 +08:00 |
|
Stephen Chung
|
2e9a5f7a89
|
Add sub_string, crop and index_of to String.
|
2020-04-13 12:29:22 +08:00 |
|
Stephen Chung
|
5796e520ec
|
Support Dynamic return values.
|
2020-04-13 10:27:08 +08:00 |
|
Stephen Chung
|
adaf086e90
|
Add i128, u128 and make timestamp functions safe.
|
2020-04-13 09:49:12 +08:00 |
|
Stephen Chung
|
5152a40e93
|
Change Dynamic to enum.
|
2020-04-12 23:00:06 +08:00 |
|
Stephen Chung
|
bc0d43d68f
|
Simplify code.
|
2020-04-11 18:09:03 +08:00 |
|
Stephen Chung
|
5848339d5a
|
Add timestamp support.
|
2020-04-11 16:06:57 +08:00 |
|
Stephen Chung
|
d73cfb6da5
|
Allow escaping quotes in strings.
|
2020-04-11 12:46:10 +08:00 |
|
Stephen Chung
|
c1b16b1a35
|
Add remove/insert to arrays and maps.
|
2020-04-10 21:59:29 +08:00 |
|
Stephen Chung
|
81894e52cb
|
Do not optimize single-use AST's.
|
2020-04-10 21:02:38 +08:00 |
|
Stephen Chung
|
4b2cff715e
|
Optimize property access for object maps.
|
2020-04-10 21:02:13 +08:00 |
|
Stephen Chung
|
ff8eca8a5e
|
Add parse_json.
|
2020-04-10 17:14:07 +08:00 |
|
Stephen Chung
|
5d611d1674
|
Add docs on JSON parsing.
|
2020-04-10 15:18:26 +08:00 |
|
Stephen Chung
|
adbfceb5be
|
Do not omit error enum variants.
|
2020-04-10 12:16:39 +08:00 |
|
Stephen Chung
|
3609150dcf
|
Bump version to 0.12.0.
|
2020-04-09 18:45:49 +08:00 |
|
Stephen Chung
|
34ef2d6e00
|
Rename AnonymousFn to Func
|
2020-04-09 10:38:33 +08:00 |
|
Stephen Chung
|
518725e119
|
Add support for anonymous functions in Rust.
|
2020-04-08 23:01:48 +08:00 |
|
Stephen Chung
|
660ce6cc79
|
Change parameter input to script.
|
2020-04-08 16:57:15 +08:00 |
|
Stephen Chung
|
bcff6bfd71
|
Remove no_stdlib feature in favor of Engine::new_raw().
|
2020-04-08 10:19:03 +08:00 |
|
Stephen Chung
|
e0bb2e5c97
|
Change optimize_ast to take optimization level as parameter.
|
2020-04-08 09:30:50 +08:00 |
|
Stephen Chung
|
b74c85f04c
|
Fix max call depth and add test.
|
2020-04-07 23:13:47 +08:00 |
|
Stephen Chung
|
9f3646d9ec
|
Keep only one call_fn, adds tuples of one and zero.
|
2020-04-07 21:50:33 +08:00 |
|
Stephen Chung
|
e795a50ae2
|
Make Engine reentrant to prepare for parallel execution.
|
2020-04-07 13:23:06 +08:00 |
|
Stephen Chung
|
e204ae1a2c
|
Add 'in' expression.
|
2020-04-06 17:47:34 +08:00 |
|
Stephen Chung
|
32672b184b
|
Avoid copying strings.
|
2020-04-06 12:29:01 +08:00 |
|
Stephen Chung
|
2bb195cd65
|
Add doc tests to Scope.
|
2020-04-05 23:43:40 +08:00 |
|
Stephen Chung
|
c4498d147d
|
Add set_value to Scope.
|
2020-04-05 19:17:48 +08:00 |
|
Stephen Chung
|
44d6a5e466
|
Reduce cloning.
|
2020-04-05 17:44:48 +08:00 |
|
Stephen Chung
|
e0514a4ec0
|
Remove ref modifiers.
|
2020-04-05 12:37:07 +08:00 |
|
Stephen Chung
|
3f247fd695
|
Allow passing in custom Scope to call_fn.
|
2020-04-05 12:17:31 +08:00 |
|
Stephen Chung
|
ae9a975576
|
Make downcast_ref, downcast_mut and is<T> public.
|
2020-04-05 09:56:52 +08:00 |
|
Stephen Chung
|
29150faef2
|
Improve AST evaluation efficiency by sharing functions.
|
2020-04-04 22:00:44 +08:00 |
|
Stephen Chung
|
d1cffac420
|
Reduce overhead of Engine by not creating hash maps until used.
|
2020-04-04 13:05:20 +08:00 |
|
Stephen Chung
|
12a379dd57
|
Add stepped range function and keys/values for maps.
|
2020-04-04 12:20:24 +08:00 |
|
Stephen Chung
|
92b549b828
|
Add features info in docs.
|
2020-04-03 19:42:01 +08:00 |
|
Stephen Chung
|
c6216c0823
|
Add back doc for on_print and on_debug.
|
2020-04-03 17:18:30 +08:00 |
|
Stephen Chung
|
a79f2a209c
|
Make Engine Send+Sync.
|
2020-04-03 17:17:00 +08:00 |
|
Stephen Chung
|
0873bdc152
|
Add sync feature to make Dynamic, Scope and AST Send + Sync .
|
2020-04-02 19:40:02 +08:00 |
|
Stephen Chung
|
5e7c9b47d5
|
Rename downcast to try_cast and add cast for Dynamic.
|
2020-04-02 12:35:44 +08:00 |
|
Stephen Chung
|
c4a51b1390
|
Add append/mixin functions for arrays and maps.
|
2020-04-01 22:56:54 +08:00 |
|
Stephen Chung
|
4ea2fb88ae
|
Add continue statement.
|
2020-04-01 16:22:18 +08:00 |
|
Stephen Chung
|
246a865abd
|
Fix doc test.
|
2020-04-01 10:21:49 +08:00 |
|
Stephen Chung
|
d7ac57c060
|
Minor code cleanup.
|
2020-04-01 09:51:33 +08:00 |
|
Stephen Chung
|
dcf5eaf64d
|
Add to_string to prepare for string interpolation.
|
2020-03-31 10:00:17 +08:00 |
|
Stephen Chung
|
c17dc34f86
|
Refine code.
|
2020-03-30 22:19:37 +08:00 |
|
Stephen Chung
|
01c0b51017
|
Change object maps to #{ ... }
|
2020-03-30 17:40:26 +08:00 |
|
Stephen Chung
|
0a8b324fec
|
Merge branch 'object_maps'
|
2020-03-30 16:13:12 +08:00 |
|
Stephen Chung
|
9f3113b11c
|
Encapsulate getters/setters.
|
2020-03-30 16:10:50 +08:00 |
|
Stephen Chung
|
fce51758d1
|
Add support for string literal property names in object maps.
|
2020-03-30 12:14:59 +08:00 |
|
Stephen Chung
|
45ee51874f
|
Add object maps.
|
2020-03-29 23:53:35 +08:00 |
|
Stephen Chung
|
ef6c6ea6d2
|
Add no_object feature to disable objects.
|
2020-03-29 17:15:12 +08:00 |
|
Stephen Chung
|
a8a4ed2967
|
Merge all MissingXXX errors into MissingToken.
|
2020-03-29 13:44:27 +08:00 |
|
Stephen Chung
|
ef6dd9414a
|
Allow if expressions.
|
2020-03-27 23:47:23 +08:00 |
|
Stephen Chung
|
a541a4507f
|
Remove internal function.
|
2020-03-27 16:46:19 +08:00 |
|
Stephen Chung
|
796690f506
|
Detect duplicated parameters in function definitions.
|
2020-03-27 16:46:08 +08:00 |
|
Stephen Chung
|
337a96394f
|
Limit function calls depth.
|
2020-03-27 14:34:01 +08:00 |
|
Stephen Chung
|
cc8554d095
|
Add merge/+ to AST.
|
2020-03-27 11:50:24 +08:00 |
|
Stephen Chung
|
56df5c49c8
|
Encapsulate FunctionsLib to hold script-defined functions.
|
2020-03-26 20:26:05 +08:00 |
|
Stephen Chung
|
8679982b4b
|
Use references for function call args.
|
2020-03-26 10:56:28 +08:00 |
|
Stephen Chung
|
ea4d3fa6b8
|
Avoid I and O as generic parameters.
|
2020-03-26 10:56:18 +08:00 |
|
Stephen Chung
|
6308e54119
|
Simplify.
|
2020-03-26 10:55:50 +08:00 |
|
Stephen Chung
|
a5a161ec88
|
Format getter/setter function name using constants.
|
2020-03-26 10:55:33 +08:00 |
|
Stephen Chung
|
2bb2e871ab
|
Remove regnster_fn support for first argument of &type (not used).
|
2020-03-25 17:21:58 +08:00 |
|
Stephen Chung
|
5aea997672
|
Refine Scope API.
|
2020-03-25 11:27:18 +08:00 |
|
Stephen Chung
|
3bc02a99ad
|
Format comments.
|
2020-03-25 11:27:09 +08:00 |
|
Stephen Chung
|
599b81ad8a
|
Remove ScopeEntry and VariableType from public.
|
2020-03-25 11:24:29 +08:00 |
|
Stephen Chung
|
180c4dee08
|
Document macros.
|
2020-03-25 11:24:06 +08:00 |
|
Stephen Chung
|
d21f66b911
|
Fixing lint warnings
|
2020-03-24 16:57:35 +08:00 |
|
Stephen Chung
|
3ea482567f
|
Simplify code style.
|
2020-03-24 16:46:47 +08:00 |
|
Stephen Chung
|
156ebd7ea4
|
Avoid copying tokens.
|
2020-03-24 11:21:20 +08:00 |
|
Stephen Chung
|
7b06715299
|
FIX - Errors in no_std.
|
2020-03-24 11:21:09 +08:00 |
|
Stephen Chung
|
3677bd3651
|
Make Token smaller by boxing LexError.
|
2020-03-24 09:49:37 +08:00 |
|
Stephen Chung
|
1b4bcbcfdf
|
Add evaluate expressions.
|
2020-03-22 21:03:58 +08:00 |
|
Stephen Chung
|
b6320c0eef
|
Minor fine tuning.
|
2020-03-22 10:18:16 +08:00 |
|
Stephen Chung
|
1d98f65342
|
Disallow statement expressions in if and while guards to reduce code confusion.
|
2020-03-20 19:50:58 +08:00 |
|
Stephen Chung
|
ed996e71d6
|
Enable dot operations on constant variables.
|
2020-03-20 19:27:02 +08:00 |
|
Stephen Chung
|
283602cdd8
|
Do not call function when optimizing if there is a script-defined function overridding it.
|
2020-03-19 22:29:02 +08:00 |
|
Stephen Chung
|
702b2010f2
|
Add contains to Scope.
|
2020-03-19 20:55:49 +08:00 |
|
Stephen Chung
|
6a6c5f30de
|
Add eval function.
|
2020-03-19 19:53:42 +08:00 |
|
Stephen Chung
|
cc8ec12691
|
Add more comments and examples.
|
2020-03-19 13:52:10 +08:00 |
|
Stephen Chung
|
b3efb8b264
|
Disallow variable names starting with _ + digit.
|
2020-03-18 23:09:53 +08:00 |
|
Stephen Chung
|
0dc51f8e59
|
Removee debug_msgs feature.
|
2020-03-18 22:03:50 +08:00 |
|
Stephen Chung
|
019e73bc7e
|
Allow empty statements.
|
2020-03-18 18:41:18 +08:00 |
|
Stephen Chung
|
a9c65a962c
|
Split no_stdlib and no_std into two features.
|
2020-03-18 12:04:26 +08:00 |
|
Stephen Chung
|
ecded729ad
|
Finalize no_std support.
|
2020-03-18 10:50:51 +08:00 |
|
Stephen Chung
|
ca20faf170
|
Add code comments.
|
2020-03-18 10:43:59 +08:00 |
|
Stephen Chung
|
8efe080412
|
Handle break and return better.
|
2020-03-18 10:42:27 +08:00 |
|
Stephen Chung
|
d2951bfb6b
|
Make sure return is not an error.
|
2020-03-18 10:40:07 +08:00 |
|
Stephen Chung
|
b26ca753c2
|
Mandatory semiclolons separating statements.
|
2020-03-18 10:40:07 +08:00 |
|
Stephen Chung
|
c3d4a1b5e9
|
Optimize type_of.
|
2020-03-18 10:40:07 +08:00 |
|
Stephen Chung
|
abe5365bfd
|
Improve error messages to lists.
|
2020-03-18 10:40:07 +08:00 |
|
Stephen Chung
|
ef8d428f42
|
Add code comments.
|
2020-03-18 10:36:50 +08:00 |
|
Trangar
|
c8a9df0a0a
|
Added no_std support
|
2020-03-17 19:26:11 +01:00 |
|
Stephen Chung
|
6ca39a019b
|
Handle break and return better.
|
2020-03-17 17:33:37 +08:00 |
|
Stephen Chung
|
706e0a0c4c
|
Make sure return is not an error.
|
2020-03-17 16:52:06 +08:00 |
|
Stephen Chung
|
2f7ca3935b
|
Mandatory semiclolons separating statements.
|
2020-03-17 14:29:22 +08:00 |
|
Stephen Chung
|
ad2601972a
|
Optimize type_of.
|
2020-03-17 10:27:43 +08:00 |
|
Stephen Chung
|
705fbd0c1b
|
Improve error messages to lists.
|
2020-03-16 23:51:32 +08:00 |
|
Stephen Chung
|
08abf07f83
|
Add string literal indexing and functon default value to optimizer.
|
2020-03-16 12:41:52 +08:00 |
|
Stephen Chung
|
f36caa6dc3
|
Add optimize_full pseudo feature.
|
2020-03-16 12:40:42 +08:00 |
|
Stephen Chung
|
2c90fea764
|
Catch illegal variable names.
|
2020-03-16 12:38:01 +08:00 |
|
Stephen Chung
|
372321dfe3
|
Add full optimization level for aggressive optimizing.
|
2020-03-15 22:39:58 +08:00 |
|
Stephen Chung
|
f80e499e84
|
Minor code cleanup.
|
2020-03-14 23:41:21 +08:00 |
|
Stephen Chung
|
01cf777961
|
Use matches! macro.
|
2020-03-14 23:41:15 +08:00 |
|
Stephen Chung
|
b9e4040635
|
Deprecate Error::description.
|
2020-03-14 23:39:45 +08:00 |
|
Stephen Chung
|
b87dc1b281
|
Only map to expressions for constants.
|
2020-03-14 20:08:18 +08:00 |
|
Stephen Chung
|
dd36f3387a
|
Fixup code to make sure all feature builds succeed.
|
2020-03-14 20:06:40 +08:00 |
|
Stephen Chung
|
973153e832
|
Add no_optimize feature to disable optimizations.
|
2020-03-14 20:06:10 +08:00 |
|
Stephen Chung
|
26bdc8ba08
|
FIX - fixes panic when constant array is assigned to. Refine README section on constants.
|
2020-03-14 19:46:44 +08:00 |
|
Stephen Chung
|
504fd56f1f
|
More documentation on chained assignment.
|
2020-03-14 14:57:59 +08:00 |
|
Stephen Chung
|
360fab7760
|
Merge branch 'chained-assignments'
|
2020-03-14 14:41:48 +08:00 |
|
Stephen Chung
|
cb6171ebcd
|
Merge branch 'constants'
|
2020-03-14 14:33:56 +08:00 |
|
Stephen Chung
|
b3a22d942a
|
Allow AST optimization based on external Scope.
|
2020-03-14 14:30:44 +08:00 |
|
Stephen Chung
|
d5adee2209
|
Allow chained assignments.
|
2020-03-14 11:51:45 +08:00 |
|
Stephen Chung
|
e5ed2f4be5
|
Update api.rs
|
2020-03-13 23:09:45 +08:00 |
|
Stephen Chung
|
c7a6777b70
|
Merge branch 'master' into master
|
2020-03-13 18:27:53 +08:00 |
|
Stephen Chung
|
9844ae8665
|
Add constants.
|
2020-03-13 18:12:41 +08:00 |
|
Jarkko Kuukkanen
|
6c72e3c48b
|
Change filename to path for clarity
|
2020-03-13 12:07:51 +02:00 |
|
Jarkko Kuukkanen
|
8c1c37666d
|
Make every file evaluation use PathBuf instead of str
|
2020-03-13 11:53:14 +02:00 |
|
Stephen Chung
|
2a181e5aab
|
FIX - fix minus/negative number conflict.
|
2020-03-13 16:54:00 +08:00 |
|
Stephen Chung
|
9bd66c7db3
|
Minor improvements to the optimizer.
|
2020-03-12 23:46:52 +08:00 |
|
Stephen Chung
|
55dcd2f0f4
|
Fix call_fn calls with only one argument.
|
2020-03-12 15:30:42 +08:00 |
|
Stephen Chung
|
560da5fdc6
|
Allow call_fn with only one parameter; consume can retain functions, eval cannot.
|
2020-03-12 14:54:14 +08:00 |
|
Stephen Chung
|
e24d3a7ade
|
Allow overloading of script functions.
|
2020-03-12 13:02:13 +08:00 |
|
Stephen Chung
|
1765d302b9
|
Minor refactor.
|
2020-03-12 12:40:28 +08:00 |
|
Stephen Chung
|
66edd28fb3
|
Do not optimize AST for dump_ast .
|
2020-03-12 12:39:33 +08:00 |
|
Stephen Chung
|
0d1a240292
|
Expand range function to cover all integer types.
|
2020-03-12 12:32:26 +08:00 |
|
Stephen Chung
|
a02c0cfaa0
|
More optimizations.
|
2020-03-11 23:43:10 +08:00 |
|
Stephen Chung
|
952932f64c
|
Reduce cloning.
|
2020-03-11 23:43:04 +08:00 |
|
Stephen Chung
|
7c4d22d98a
|
Add no_function feature to disable script-defined functions.
|
2020-03-11 13:28:12 +08:00 |
|
Stephen Chung
|
047f064cd1
|
Add dump_ast function for debugging.
|
2020-03-11 11:39:15 +08:00 |
|
Stephen Chung
|
880bce1114
|
General cleanup.
|
2020-03-11 11:03:18 +08:00 |
|
Stephen Chung
|
708c285a0a
|
Add only_i32 and only_i64 features.
|
2020-03-10 23:06:20 +08:00 |
|
Stephen Chung
|
e22aaca5c1
|
Make sure all tests run with all features.
|
2020-03-10 19:48:47 +08:00 |
|
Stephen Chung
|
cc772c6e2a
|
Add no_float feature to disable floating-point.
|
2020-03-10 18:32:01 +08:00 |
|
Stephen Chung
|
52b5732bcb
|
Add no_inidex feature to disable arrays and indexing.
|
2020-03-10 17:10:33 +08:00 |
|
Stephen Chung
|
f3bcb2a10d
|
Simplify call_fn API, no need to pass &mut references.
|
2020-03-10 14:09:05 +08:00 |
|
Stephen Chung
|
2d80ee2f18
|
Refine optimizer.
|
2020-03-10 11:22:41 +08:00 |
|
Stephen Chung
|
feaad4e0da
|
Group use of std under one root.
|
2020-03-10 10:07:44 +08:00 |
|
Stephen Chung
|
bae9946291
|
Allow engine to retain functions across runs.
|
2020-03-10 09:30:12 +08:00 |
|
Stephen Chung
|
55e7af7b04
|
Add AST optimizer.
|
2020-03-09 21:57:07 +08:00 |
|
Stephen Chung
|
c467ffd58d
|
Comment out optimizer for successful build.
|
2020-03-09 21:52:43 +08:00 |
|
Stephen Chung
|
5b5fd162be
|
Use ? operator in tests.
|
2020-03-09 21:09:53 +08:00 |
|
Stephen Chung
|
1ca9db4379
|
Fix i64.powi() to i64.pos()
|
2020-03-09 14:15:32 +08:00 |
|
Stephen Chung
|
b9d562eba4
|
Add standard math functions and make power functions checked.
|
2020-03-09 11:42:10 +08:00 |
|
Stephen Chung
|
e54fb54da2
|
Catch indexing errors at compile time.
|
2020-03-09 10:41:17 +08:00 |
|
Stephen Chung
|
01d04f717b
|
Natively handle negative numbers in tokenizer instead of the neg() function.
|
2020-03-09 10:10:19 +08:00 |
|
Stephen Chung
|
c5b40783ef
|
Add unchecked feature to remove arithmetic operations checking.
|
2020-03-08 23:14:18 +08:00 |
|
Stephen Chung
|
b1b25d3043
|
Add fallible functions support and replace most arithmetic operations with checked versions.
|
2020-03-08 22:47:13 +08:00 |
|
Stephen Chung
|
3e7adc2e51
|
More comments in code.
|
2020-03-08 19:54:02 +08:00 |
|
Stephen Chung
|
daa581bac7
|
Add append to strings.
|
2020-03-08 09:19:04 +08:00 |
|
Stephen Chung
|
a264abffa4
|
Allow arbitrary number of indexing in dot getter chain.
|
2020-03-07 23:57:01 +08:00 |
|
Stephen Chung
|
eed7bef974
|
Allow chaining of indexing (one level) and dotting.
|
2020-03-07 22:50:46 +08:00 |
|
Stephen Chung
|
df6950f8f7
|
Fix arrayindexed property access.
|
2020-03-07 20:55:03 +08:00 |
|
Stephen Chung
|
d055638e83
|
Properly detect invalid assignment LHS at compile time.
|
2020-03-07 17:32:15 +08:00 |
|
Stephen Chung
|
a8be700b9f
|
Simplify op-assignment.
|
2020-03-07 13:39:28 +08:00 |
|
Stephen Chung
|
22cb69a16b
|
Allow block expressions.
|
2020-03-07 10:39:00 +08:00 |
|
Stephen Chung
|
473e40e8a4
|
Catch more invalid LHS for assignments.
|
2020-03-07 10:16:20 +08:00 |
|
Stephen Chung
|
024133ae2d
|
Avoid string copying.
|
2020-03-07 10:15:42 +08:00 |
|
Stephen Chung
|
ea82ee81d6
|
Fix call_fn to take &ast instead of ast.
|
2020-03-07 00:29:45 +08:00 |
|
Stephen Chung
|
c917aa0a5a
|
Code cleanup.
|
2020-03-06 23:49:52 +08:00 |
|
Stephen Chung
|
d2296ab33b
|
Allow dot operator on function results; change debug print info for function registration.
|
2020-03-06 21:08:51 +08:00 |
|
Stephen Chung
|
07e396b3f5
|
Allow chaining of array indexing operations.
|
2020-03-06 10:50:52 +08:00 |
|
Stephen Chung
|
d8ec7ed141
|
Rephrase error messages.
|
2020-03-06 10:50:20 +08:00 |
|
Stephen Chung
|
c7801e1d7e
|
Fix off-by-one error message on indexing.
|
2020-03-06 09:55:00 +08:00 |
|
Stephen Chung
|
3d3b939ba6
|
Simplify code, document logic, refactor and better error messages.
|
2020-03-06 01:05:02 +08:00 |
|
Stephen Chung
|
883f08c026
|
Enable more indexing expressions.
|
2020-03-05 20:28:03 +08:00 |
|
Stephen Chung
|
c9395049e2
|
Remove no-std feature and rename stdlib to no_stdlib.
|
2020-03-05 10:18:46 +08:00 |
|
Stephen Chung
|
347f6d607a
|
Add no-std and stdlib features.
|
2020-03-04 23:44:32 +08:00 |
|
Stephen Chung
|
ba2aac4960
|
General code cleanup.
|
2020-03-04 23:06:05 +08:00 |
|
Stephen Chung
|
bb56a7a843
|
Code refactor, bug fixes, code docs.
|
2020-03-04 22:00:01 +08:00 |
|
Stephen Chung
|
b4d56accd4
|
Reverse commit fa13588f69 . Limit input script size not meaningful.
|
2020-03-04 09:33:35 +08:00 |
|
Stephen Chung
|
b421c8ac50
|
Minor refactor.
|
2020-03-03 23:31:29 +08:00 |
|
Stephen Chung
|
3af421ae5f
|
Fix problems with script-defined functions.
|
2020-03-03 23:31:16 +08:00 |
|
Stephen Chung
|
01bee6e16e
|
Accept up to 20 parameters in functions.
|
2020-03-03 23:17:42 +08:00 |
|
Stephen Chung
|
71a3c79915
|
Fix number parsing.
|
2020-03-03 21:39:25 +08:00 |
|
Stephen Chung
|
9f80bf03c4
|
Add throw.
|
2020-03-03 18:15:20 +08:00 |
|
Stephen Chung
|
e2cb111e4b
|
Add type_of function.
|
2020-03-03 17:28:38 +08:00 |
|
Stephen Chung
|
71ec23e621
|
Minor code refactoring.
|
2020-03-03 16:24:03 +08:00 |
|
Stephen Chung
|
95d0b2e620
|
Better error messages for function definitions.
|
2020-03-03 16:23:55 +08:00 |
|
Stephen Chung
|
a1591ae45b
|
Better API for Scope.
|
2020-03-03 15:20:20 +08:00 |
|
Stephen Chung
|
fa13588f69
|
Limit script size to avoid overflowing positions.
|
2020-03-03 13:30:46 +08:00 |
|
Stephen Chung
|
366188234b
|
Pretty-print common type names.
|
2020-03-02 23:16:19 +08:00 |
|
Stephen Chung
|
a4a9102fc5
|
Add remaining integer types.
|
2020-03-02 22:32:08 +08:00 |
|
Stephen Chung
|
0e96e1080c
|
Comprehensive error line number/character position during evaluation.
|
2020-03-02 22:13:14 +08:00 |
|
Stephen Chung
|
0707fad1ca
|
Refactor tests.
|
2020-03-02 22:11:56 +08:00 |
|
Stephen Chung
|
ed8d2ac20f
|
Add else if control flow.
|
2020-03-02 17:04:56 +08:00 |
|
Stephen Chung
|
cc87214750
|
Simplify code.
|
2020-03-02 17:04:45 +08:00 |
|
Stephen Chung
|
103c62fb43
|
Include io::Error in file API's.
|
2020-03-02 16:29:50 +08:00 |
|
Stephen Chung
|
adaa65f953
|
Allow script functions to override built-in functions.
|
2020-03-02 15:19:41 +08:00 |
|
Stephen Chung
|
a5e09295f8
|
Allow comparisons between different types (returning false).
|
2020-03-02 14:28:42 +08:00 |
|
Stephen Chung
|
22a505b57b
|
Short-curcuit boolean operators.
|
2020-03-02 12:08:03 +08:00 |
|
Stephen Chung
|
bedfe55005
|
Minor code refactoring.
|
2020-03-02 00:11:00 +08:00 |
|
Stephen Chung
|
a64b01692b
|
Use impl Fn style.
|
2020-03-01 19:26:57 +08:00 |
|
Stephen Chung
|
b152ed88f0
|
Move built-in functions into separate module.
|
2020-03-01 17:37:47 +08:00 |
|
Stephen Chung
|
e93fd7d3fe
|
Properly handle char types.
|
2020-03-01 13:30:22 +08:00 |
|
Stephen Chung
|
5f135353c0
|
Change precedence to i8.
|
2020-02-29 21:18:48 +08:00 |
|
Stephen Chung
|
17f0001b11
|
Fix string handling - error for unterminated strings.
|
2020-02-29 21:10:31 +08:00 |
|
Stephen Chung
|
4b3cf95871
|
Simplify position handling.
|
2020-02-29 20:12:10 +08:00 |
|
Stephen Chung
|
c9daab3754
|
Simplify code by removing redirections.
|
2020-02-29 17:10:51 +08:00 |
|
Stephen Chung
|
8723eedca9
|
Rename RegisterBoxFn to RegisterDynamicFn.
|
2020-02-28 23:38:39 +08:00 |
|
Stephen Chung
|
8128c0cf24
|
Add pad and truncate array functions.
|
2020-02-25 16:23:59 +08:00 |
|
Stephen Chung
|
80a9abada6
|
Introduce to_int and to_float conersion functions.
|
2020-02-25 15:02:50 +08:00 |
|
Stephen Chung
|
51abc4a2c1
|
Simplify API by introducing the Dynamic and Array type aliases.
|
2020-02-25 15:02:27 +08:00 |
|
Stephen Chung
|
60a7d51537
|
Allow override of print and debug.
|
2020-02-25 10:40:48 +08:00 |
|
Stephen Chung
|
e4e471fd20
|
Add line/position in compilation errors; Add compile to AST; FIx infinite loop in close parens.
|
2020-02-24 23:25:52 +08:00 |
|
Stephen Chung
|
b3247204c6
|
Include filename in ErrorCantOpenScriptFile.
|
2020-02-24 11:06:33 +08:00 |
|
Stephen Chung
|
157aa2be94
|
Add for statement and range function; New register_box_fn for functions returning Box<dyn Any> (which should not be boxed again); Register standard utility functions in library (e.g. print, string concat).
|
2020-02-23 22:48:46 +08:00 |
|
Stephen Chung
|
b2747b076e
|
Add bouncs check to array index access.
|
2020-02-23 14:09:40 +08:00 |
|
Stephen Chung
|
829621a3d4
|
Trap array out-of-bound index access error.
|
2020-02-23 13:59:50 +08:00 |
|
timfish
|
4217e96d19
|
Remove unused enums and simplify test assertions
|
2019-10-09 12:06:32 +01:00 |
|
timfish
|
c34af7979a
|
Format
|
2019-09-30 18:58:01 +01:00 |
|
timfish
|
53bb0a38f0
|
Use std::any::type_name
|
2019-09-30 18:57:21 +01:00 |
|
timfish
|
82fd20b2b1
|
Rust 2018
|
2019-09-18 11:21:07 +01:00 |
|
timfish
|
d7d0507f5a
|
Fix readme and a couple of mis-named types?
|
2019-09-16 22:14:14 +01:00 |
|
David Kushner
|
0a11cadebf
|
fix ambiguous calls to type_id preventing compilation on nightly
|
2019-04-17 13:28:14 -07:00 |
|
steve donovan
|
7ff1c39e01
|
Engine should be Clone
|
2018-07-22 17:06:13 +02:00 |
|
steve donovan
|
3fb2f543bb
|
Engine::register_type_name for nice error messages for arbitrary types
|
2018-07-22 11:43:21 +02:00 |
|
steve donovan
|
2bf3f5e957
|
better not-found error messages for variables and functions
|
2018-07-16 13:01:11 +02:00 |
|
Juan Ibiapina
|
e534e907e8
|
Use default rust directory structure for tests
|
2018-06-13 10:56:29 +02:00 |
|
russ morris
|
2f46af64dd
|
added unit type as ()
|
2018-05-22 16:44:41 -07:00 |
|
Lukáš Hozda
|
8d07d8e00a
|
lock debug messages behind 'debug_msgs' feature
|
2018-02-09 22:27:41 +01:00 |
|
Lukáš Hozda
|
ccc16f42f9
|
make engine clone-able
|
2017-12-31 19:58:50 +01:00 |
|
Lukáš Hozda
|
b318ec24a9
|
rename OpEquals to OpAssign, as all of them are compound assignment operators
|
2017-12-21 12:32:18 +01:00 |
|
Lukáš Hozda
|
5edcfc2156
|
minor refactor
|
2017-12-21 12:28:59 +01:00 |
|
torkleyy
|
76a1e3056b
|
Add better funcion call syntax
|
2017-12-20 22:16:53 +01:00 |
|
torkleyy
|
71ebd0d4d1
|
Use &mut Any instead of &mut Box<Any>
|
2017-12-20 21:52:26 +01:00 |
|
torkleyy
|
348a680980
|
Fix build and all tests
|
2017-12-20 21:09:53 +01:00 |
|
torkleyy
|
3672414212
|
Simplify and fix code
|
2017-12-20 17:37:12 +01:00 |
|
torkleyy
|
aec1fdcb78
|
Revert debugging changes
|
2017-12-20 16:39:03 +01:00 |
|
torkleyy
|
a0fb5036f6
|
Minor tweaks, fix bug
|
2017-12-20 16:32:04 +01:00 |
|
torkleyy
|
f09545921f
|
Rewrite Rhai function dispatching
|
2017-12-20 12:16:14 +01:00 |
|
russ
|
3a5a1d2aff
|
i64 and f64 exponent implementation
|
2017-11-23 23:56:22 -08:00 |
|
Lukáš Hozda
|
8fbeecb31b
|
export EvalAltResult, because it was public already and might be needed for some eval() and consume() calls
|
2017-11-03 18:49:27 +01:00 |
|
russ
|
037a9cdc67
|
separated tests for mergability
|
2017-11-03 09:58:51 -07:00 |
|
Lukáš Hozda
|
17ebeeeb89
|
add a test for unary after new binary ops
|
2017-11-01 23:09:30 +01:00 |
|
Lukáš Hozda
|
3c8feab630
|
allow unary after compound and new binary operators
|
2017-11-01 23:09:07 +01:00 |
|
russ
|
7f6edf732f
|
resolved merge conflicts
|
2017-11-01 11:17:53 -07:00 |
|
russ
|
6d151bc2b9
|
minor refactor for sanity
|
2017-10-31 22:10:46 -07:00 |
|
russ
|
6cff70f2a3
|
binary, hex, octal literal types
|
2017-10-31 22:02:36 -07:00 |
|
russ
|
4fed05c20a
|
bugfix for binary and, modulo, binary ops tests
|
2017-10-31 15:06:13 -07:00 |
|
Lukáš Hozda [magnusi]
|
896c2f7a08
|
Merge pull request #43 from luciusmagn/master
fix version in README, continue documenting
|
2017-10-31 13:43:46 +01:00 |
|
russ
|
f1cd71a72b
|
candidate compound assignment implementation
|
2017-10-30 22:55:20 -07:00 |
|
russ
|
e5e58fce98
|
sync'd latest master
|
2017-10-30 08:08:44 -07:00 |
|
Lukáš Hozda
|
9448c19581
|
fix version in README, continue documenting
|
2017-10-30 13:08:40 +01:00 |
|
Lukáš Hozda
|
50b8fe365a
|
fix warning in lib.rs doctest
|
2017-10-30 08:53:11 +01:00 |
|
Lukáš Hozda [magnusi]
|
b95c402e3f
|
Merge branch 'master' into master
|
2017-10-30 08:48:19 +01:00 |
|
russ
|
e042e1e31d
|
candidate increment/decrement implementation
|
2017-10-29 22:03:35 -07:00 |
|
russ
|
18c6892df3
|
take 2, 100% fewer variable name conflicts
|
2017-10-29 20:32:41 -07:00 |
|
Lukáš Hozda
|
47ce39062f
|
initial documentation (WIP)
|
2017-10-28 22:33:00 +02:00 |
|
Lukáš Hozda
|
32c252d4d2
|
allow unary operators as the first token after if or while
|
2017-10-28 20:58:22 +02:00 |
|
Lukáš Hozda
|
ebbab0d259
|
bump version, remove unneeded cause() fn as it now has a provided implementation
|
2017-10-28 17:44:53 +02:00 |
|
Lukáš Hozda
|
caf8a411aa
|
impl loop and add tests for both unary operators and loops
|
2017-10-28 16:40:38 +02:00 |
|
Lukáš Hozda
|
679f0de6b6
|
implement unary + and -, add useful functions to Token
|
2017-10-28 16:08:24 +02:00 |
|
Lukáš Hozda
|
b8157a1121
|
implement comments
|
2017-10-28 12:39:29 +02:00 |
|
russ
|
01666cefb9
|
candidate f64 support
|
2017-10-27 20:30:12 -07:00 |
|
Lukáš Hozda
|
0b9865b24c
|
add REPL example and consume functions
|
2017-10-15 17:50:39 +02:00 |
|
Lukáš Hozda
|
13a3ba6f77
|
add a section about examples to README, add imports to tests.rs
|
2017-10-15 17:48:53 +02:00 |
|
Lukáš Hozda
|
597c2eda21
|
move tests to a separated module for clarity, lock test module behind #[cfg(test)]
|
2017-10-14 19:49:18 +02:00 |
|
Lukáš Hozda
|
00dedcc3b4
|
minor refactoring
|
2017-10-14 19:46:22 +02:00 |
|
Lukáš Hozda
|
5bd2338f1c
|
replace try!() with the more compact ? operator, compress operator functions to single lines
|
2017-10-02 23:51:04 +02:00 |
|
Lukáš Hozda
|
a1e92d006c
|
clippy refactoring
|
2017-10-02 23:44:45 +02:00 |
|
Lukáš Hozda
|
660fbe2e39
|
[BREAKING CHANGE] change variable keyword to 'let' from 'var'
|
2017-10-02 08:46:35 +02:00 |
|
Lukáš Hozda
|
87b68b79f8
|
check if a char is whitespace instead of explicitly checking against a few chars, ignore Cargo.lock
|
2017-10-02 08:33:47 +02:00 |
|
Jonathan Turner
|
2a28209b38
|
Add string concat/compare. Bump to 0.4
|
2016-08-17 18:33:31 -07:00 |
|
jonathandturner
|
7a46c7d9bc
|
Refactoring a bit of the string/char parser code. Fmt'd
|
2016-04-16 19:32:18 -07:00 |
|
jonathandturner
|
b9ea072d6a
|
Add support for character constants
|
2016-04-13 18:40:06 -07:00 |
|
jonathandturner
|
3364191781
|
Move to i64 by default
|
2016-04-13 18:05:44 -07:00 |
|
jonathandturner
|
4e38b9e611
|
Clean up trailing space and fix rhai_runner print out
|
2016-04-13 18:01:08 -07:00 |
|
jonathandturner
|
3dfc6e627d
|
Move to using i64 by default
|
2016-04-12 19:52:27 -07:00 |
|
jonathandturner
|
d133a62fc6
|
Tidy up tests
|
2016-03-26 13:36:26 -07:00 |
|
jonathandturner
|
5ccfab87ce
|
Fill out array support with get/set for indexes in more complex expressions
|
2016-03-26 13:32:20 -07:00 |
|
jonathandturner
|
b1ccaf4516
|
Add support for arrays
|
2016-03-26 10:46:28 -07:00 |
|
jonathandturner
|
ceadc0977f
|
Add eval_file and get/set helpers
|
2016-03-17 08:45:48 -04:00 |
|
jonathandturner
|
65bf269843
|
Add error test case for mismatched args
|
2016-03-16 19:20:11 -04:00 |
|
jonathandturner
|
cfac566425
|
Remove unbox/cast step in eval
|
2016-03-16 18:32:05 -04:00 |
|
jonathandturner
|
254f4b081c
|
Simplified function registration to not require explicit coercion step. Simplified eval to take &str instead of String
|
2016-03-16 18:07:08 -04:00 |
|
jonathandturner
|
0e4f194880
|
A few minor cleanups
|
2016-03-10 16:19:56 -05:00 |
|
jonathandturner
|
924ce2eddc
|
Add preliminary support for deeper get/set
|
2016-03-10 14:21:36 -05:00 |
|
jonathandturner
|
72c23ad7ca
|
Start adding support for dotted expressions
|
2016-03-07 15:39:02 -05:00 |
|
jonathandturner
|
fbf81ff651
|
Add Scope to API. Move todo to github
|
2016-03-04 08:45:43 -05:00 |
|
jonathandturner
|
b5075e6511
|
Fix divide support
|
2016-03-03 11:32:02 -05:00 |
|
jonathandturner
|
3dea40a9f7
|
Fix type register visibility. Add a few more examples
|
2016-03-03 11:08:34 -05:00 |
|
jonathandturner
|
fee3852979
|
Move to lib style, move scripts into their own directory, start source examples
|
2016-03-03 10:55:28 -05:00 |
|
jonathandturner
|
fbb5b72f24
|
Add support for loop breaks and function returns
|
2016-03-03 09:31:42 -05:00 |
|
jonathandturner
|
30b914e7b7
|
Add else to if
|
2016-03-03 08:20:55 -05:00 |
|
jonathandturner
|
6ddeec4166
|
Remove debug function
|
2016-03-02 14:51:51 -05:00 |
|
jonathandturner
|
a10b59d835
|
Refactor function lookup for better compile times and slightly cleaner code
|
2016-03-02 14:14:22 -05:00 |
|
jonathandturner
|
3d0d3803fc
|
typo in function resolution
|
2016-03-02 11:17:53 -05:00 |
|
jonathandturner
|
54279fd75f
|
Add support for functions up to arity 6
|
2016-03-02 10:49:24 -05:00 |
|
jonathandturner
|
0fd1af9c8d
|
Improve lexer errors a little
|
2016-03-02 09:16:36 -05:00 |
|
jonathandturner
|
2bba8dc429
|
Add support for string constants with escape sequences
|
2016-03-02 08:37:28 -05:00 |
|
jonathandturner
|
1320a35c81
|
Add a few examples
|
2016-03-01 21:36:46 -05:00 |
|
jonathandturner
|
d8dd673459
|
Add support for functions declared in script
|
2016-03-01 20:45:02 -05:00 |
|
jonathandturner
|
a8fa76c2fc
|
Support for methods. Started support for functions defined in script but not yet ready
|
2016-03-01 15:16:10 -05:00 |
|
jonathandturner
|
419781cfb6
|
Fill out support for operators
|
2016-03-01 09:40:48 -05:00 |
|
jonathandturner
|
02935fd8cf
|
Move to Display rather than Debug for simple script runner
|
2016-02-29 16:56:26 -05:00 |
|
jonathandturner
|
6739706b64
|
Initial commit
|
2016-02-29 16:43:45 -05:00 |
|