Stephen Chung
|
42058836ba
|
Fix panic in property access parsing error.
|
2021-01-31 18:44:50 +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
|
fe65bf6137
|
Fix bug in optimizer.
|
2021-01-12 23:52:50 +08:00 |
|
Stephen Chung
|
a5d6392107
|
Use NonZero for limits.
|
2021-01-06 13:46:53 +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
|
ef48f47b74
|
Refine docs and comments etc.
|
2021-01-02 23:30:10 +08:00 |
|
Stephen Chung
|
13f5cec291
|
Fix call stack limits.
|
2020-12-29 12:29:45 +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
|
66d3af256e
|
Enhance custom operators.
|
2020-12-26 23:21:09 +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
|
2e7ec8f1db
|
IdentX -> Ident.
|
2020-12-22 16:45:56 +08:00 |
|
Stephen Chung
|
10da4d8976
|
LexError directly to ParseError.
|
2020-12-22 11:55:51 +08:00 |
|
Stephen Chung
|
2955a4ab64
|
Fix unary operators binding.
|
2020-12-21 17:39:37 +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
|
f8c14ba1c4
|
Add look-ahead to custom syntax parser.
|
2020-12-15 19:23:30 +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
|
bed29da71a
|
Use ImmutableString.
|
2020-12-11 12:57:07 +08:00 |
|
Stephen Chung
|
dbee0eb0f5
|
Rename AccessType to ReadWrite and ReadOnly.
|
2020-12-09 18:37:52 +08:00 |
|
Stephen Chung
|
f22a04fc74
|
Move constancy into Dynamic.
|
2020-12-08 22:47:38 +08:00 |
|
Stephen Chung
|
36546c7325
|
Fix builds
|
2020-11-27 23:37:59 +08:00 |
|
Stephen Chung
|
a0979d0c35
|
Code cleanup
|
2020-11-25 09:36:06 +08:00 |
|
Stephen Chung
|
0046fe7e73
|
Prefer Engine::disable_symbol to disable eval.
|
2020-11-21 15:08:18 +08:00 |
|
Stephen Chung
|
2be757fda0
|
Make shadowing variables in custom syntax work.
|
2020-11-21 13:05:57 +08:00 |
|
Stephen Chung
|
6069a4cf55
|
do loop.
|
2020-11-20 22:23:37 +08:00 |
|
Stephen Chung
|
783803ec46
|
Update comments with links.
|
2020-11-20 16:52:28 +08:00 |
|
Stephen Chung
|
15afd83da5
|
Merge Expr::True/False into BoolConstant.
|
2020-11-19 22:29:50 +08:00 |
|
Stephen Chung
|
038e3c2554
|
Add FnNamespace for module functions.
|
2020-11-17 12:23:53 +08:00 |
|
Stephen Chung
|
999a87f86e
|
Fix no_optimize build.
|
2020-11-16 23:32:44 +08:00 |
|
Stephen Chung
|
7ef3bd6b20
|
Fix no_function build.
|
2020-11-16 23:25:19 +08:00 |
|
Stephen Chung
|
699220057f
|
Fix bug.
|
2020-11-16 23:17:34 +08:00 |
|
Stephen Chung
|
272c8505b8
|
Refactor use.
|
2020-11-16 23:10:14 +08:00 |
|
Stephen Chung
|
d50d48f26f
|
Move definition of Array and Map to lib.rs.
|
2020-11-16 21:14:32 +08:00 |
|
Stephen Chung
|
adb902326e
|
Reduce feature gates on imports.
|
2020-11-16 16:28:04 +08:00 |
|
Stephen Chung
|
b75964e383
|
Add Dynamic::UNIT.
|
2020-11-15 23:14:29 +08:00 |
|
Stephen Chung
|
c919ee4e46
|
Fine tune hash map sizes.
|
2020-11-15 13:49:54 +08:00 |
|
Stephen Chung
|
bde8917ed4
|
Set capacity of hash maps.
|
2020-11-15 12:07:35 +08:00 |
|
Stephen Chung
|
a63f14b59c
|
Expr::Switch -> Stmt::Switch.
|
2020-11-14 23:43:36 +08:00 |
|
Stephen Chung
|
0182117759
|
Change Stmt Variant names.
|
2020-11-14 22:55:23 +08:00 |
|
Stephen Chung
|
b0c66eb5e5
|
Add benchmarks for switch statement.
|
2020-11-13 19:35:51 +08:00 |
|
Stephen Chung
|
55b4907f19
|
Add switch expression.
|
2020-11-13 18:32:18 +08:00 |
|
Stephen Chung
|
7d1b971b39
|
More interned strings.
|
2020-11-13 10:43:54 +08:00 |
|
Stephen Chung
|
27619b86db
|
Fix builds.
|
2020-11-12 23:09:27 +08:00 |
|
Stephen Chung
|
69a0f044f4
|
Use interned strings to prepare for match statement.
|
2020-11-12 22:36:13 +08:00 |
|
Stephen Chung
|
958762079e
|
Change modules to namespace.
|
2020-11-10 23:26:50 +08:00 |
|
Stephen Chung
|
e69444293c
|
Encapsulate imported modules into AST.
|
2020-11-09 21:52:23 +08:00 |
|
Stephen Chung
|
821e64adc4
|
Allow multiple exports.
|
2020-11-09 14:38:33 +08:00 |
|
Stephen Chung
|
4b622a8830
|
Enable export let/export const short-hand.
|
2020-11-09 12:21:11 +08:00 |
|
Stephen Chung
|
760f6c3678
|
Fix no_function build.
|
2020-11-08 10:56:33 +08:00 |
|
Stephen Chung
|
07a8a43298
|
Optimize data structures.
|
2020-11-06 16:27:40 +08:00 |
|
Stephen Chung
|
c287a61b93
|
Streamline ScriptFnDef.
|
2020-11-04 12:34:54 +08:00 |
|
Stephen Chung
|
2168fd5361
|
Expr::Stmt takes a statements block.
|
2020-11-04 11:49:02 +08:00 |
|
Stephen Chung
|
f74d947c6b
|
Fix constant assignment.
|
2020-11-03 13:08:19 +08:00 |
|
Stephen Chung
|
b9de8eaa7f
|
Minor code refactor.
|
2020-11-02 23:54:19 +08:00 |
|
Stephen Chung
|
d7d6f74dfd
|
Add constant NO_POS.
|
2020-11-02 12:50:27 +08:00 |
|
Stephen Chung
|
629e02f9da
|
Use Ident.
|
2020-11-01 00:04:02 +08:00 |
|
Stephen Chung
|
abbee80e5d
|
Do not box ModuleRef.
|
2020-10-31 23:51:59 +08:00 |
|
Stephen Chung
|
42eac410b7
|
Optimize Expr.
|
2020-10-31 23:26:21 +08:00 |
|
Stephen Chung
|
89811c8dfc
|
Pack Stmt and Expr some more.
|
2020-10-31 14:13:45 +08:00 |
|
Stephen Chung
|
4e115d2bc2
|
Code structure refactor.
|
2020-10-29 11:37:51 +08:00 |
|
Stephen Chung
|
f5ffbfbe06
|
Code structure cleanup.
|
2020-10-28 22:18:44 +08:00 |
|
Stephen Chung
|
53adc58f63
|
Fix no_closure build.
|
2020-10-28 19:21:45 +08:00 |
|
Stephen Chung
|
f56c3fe9cb
|
Add Ident/IdentX to AST.
|
2020-10-28 19:11:17 +08:00 |
|
Stephen Chung
|
30e11f137b
|
Move ErrorAssignmentToUnknownLHS to ParseError.
|
2020-10-28 10:26:36 +08:00 |
|
Stephen Chung
|
4b087d0e69
|
Fix test.
|
2020-10-27 23:45:04 +08:00 |
|
Stephen Chung
|
51fca1e757
|
Move Assignment to Stmt.
|
2020-10-27 23:21:20 +08:00 |
|
Stephen Chung
|
fd2ba54b49
|
Introduce BinaryExpr.
|
2020-10-27 23:00:05 +08:00 |
|
Stephen Chung
|
f62f7908ab
|
Pack Stmt tighter.
|
2020-10-27 19:23:43 +08:00 |
|
Stephen Chung
|
93b5df6b3c
|
Pack Stmt structure.
|
2020-10-27 18:18:19 +08:00 |
|
Stephen Chung
|
01663a6581
|
Refine docs.
|
2020-10-27 11:30:38 +08:00 |
|
Stephen Chung
|
54d68c1061
|
Fix bug.
|
2020-10-26 21:49:49 +08:00 |
|
Stephen Chung
|
7496c77ac9
|
Custom syntax parser function takes &[String].
|
2020-10-26 19:46:58 +08:00 |
|
Stephen Chung
|
b607a3a9ba
|
Add raw API for custom syntax.
|
2020-10-25 21:57:18 +08:00 |
|
Stephen Chung
|
2c7c719cd5
|
Minor cleanup before release.
|
2020-10-22 12:26:44 +08:00 |
|
Stephen Chung
|
07bdb824fe
|
Add try-catch.
|
2020-10-20 23:16:03 +08:00 |
|
Stephen Chung
|
5ee9dfc5cd
|
1) Change namespaces to iter_namespaces
2) throw can throw any value
|
2020-10-20 18:09:26 +08:00 |
|
Stephen Chung
|
ccba5f2188
|
Move custom syntax into separate function.
|
2020-10-19 19:21:40 +08:00 |
|
Stephen Chung
|
a9fd0ff4de
|
Encapsulate scope into EvalContext;
Fix bug with custom syntax delta.
|
2020-10-19 19:11:55 +08:00 |
|
Stephen Chung
|
6e5c903241
|
Fix no_module build.
|
2020-10-18 22:10:08 +08:00 |
|
Stephen Chung
|
dc4c47e008
|
Fix no_function and no_module builds.
|
2020-10-18 17:29:11 +08:00 |
|
Stephen Chung
|
82e6dd446a
|
Encapsulate register_fn_raw parameters into NativeCallContext.
|
2020-10-18 17:02:17 +08:00 |
|
Stephen Chung
|
f903eda8ab
|
Catch Fn and eval in method call at parse time.
|
2020-10-17 18:18:29 +08:00 |
|
Stephen Chung
|
39474d6420
|
Streamline function pointers and currying.
|
2020-10-17 13:49:16 +08:00 |
|
Stephen Chung
|
3c7805d514
|
Encapsulate environment in ScriptFnDef.
|
2020-10-13 09:38:14 +08:00 |
|
Stephen Chung
|
c4f00afbee
|
Disallow ! in module function calls.
|
2020-10-12 16:59:59 +08:00 |
|
Stephen Chung
|
612ecc4ebc
|
Move StaticVec definition to lib.rs.
|
2020-10-10 13:41:55 +08:00 |
|
Stephen Chung
|
7ede299aae
|
Allow expressions in constants.
|
2020-10-09 11:15:25 +08:00 |
|
Stephen Chung
|
1272eeb81a
|
Add/remove #[inline] attributes.
|
2020-10-08 22:25:50 +08:00 |
|
Stephen Chung
|
b2d603ec06
|
Refine Add/AddAssign for AST and Module.
|
2020-10-07 23:25:08 +08:00 |
|
Stephen Chung
|
d7bfe13b3e
|
Add convenient functions and operators for Module and module resolvers.
|
2020-10-07 15:40:36 +08:00 |
|
Stephen Chung
|
1523981e4e
|
Add AST::combine and AST::combine_filtered.
|
2020-10-07 12:11:25 +08:00 |
|
Stephen Chung
|
ae1157a140
|
Remove Expr::get_constant_str and change Expr::get_constant_value not to panic.
|
2020-10-06 22:09:26 +08:00 |
|
Stephen Chung
|
1e13e6be5f
|
Doc formatting.
|
2020-10-03 18:49:11 +08:00 |
|
Stephen Chung
|
a72f70846f
|
Make merged namespace more efficient.
|
2020-10-02 23:14:33 +08:00 |
|
Stephen Chung
|
08ca90a136
|
Use ImmutableString for import alias.
|
2020-10-02 18:52:18 +08:00 |
|
Stephen Chung
|
e8d5f78f88
|
Simplify code.
|
2020-10-01 23:31:27 +08:00 |
|
Stephen Chung
|
03dce86328
|
Support Dynamic as function default return value.
|
2020-09-26 16:27:38 +08:00 |
|
Stephen Chung
|
c4ec93080e
|
New FileModuleResolver.
|
2020-09-24 22:50:28 +08:00 |
|
Stephen Chung
|
b8aeaa84de
|
Add functions to iterate script function definitions.
|
2020-09-24 16:10:25 +08:00 |
|
J Henry Waugh
|
c8dffff515
|
Fix clippy::perf lint errors
|
2020-09-20 13:07:46 -05:00 |
|
Stephen Chung
|
d1ab9a2848
|
Fix bug on unary function hashes.
|
2020-09-11 22:09:09 +08:00 |
|
Stephen Chung
|
a72f797da1
|
Merge branch 'plugins' into plugins_dev
|
2020-08-23 17:54:37 +08:00 |
|
Stephen Chung
|
7cd345b128
|
Fix bug in closure capture for no_object.
|
2020-08-23 17:46:39 +08:00 |
|
Stephen Chung
|
3042e3d9db
|
Merge branch 'master' into plugins_dev
|
2020-08-22 22:51:41 +08:00 |
|
Stephen Chung
|
0ece75aba3
|
Allow module access in closures.
|
2020-08-22 22:44:24 +08:00 |
|
Stephen Chung
|
0b04d05afe
|
Do not parse closures when allow_anonymous_fn is false.
|
2020-08-22 11:08:27 +08:00 |
|
Stephen Chung
|
08977e2a62
|
Use combine_flatten for plugin modules.
|
2020-08-21 21:48:45 +08:00 |
|
Stephen Chung
|
564d3bc339
|
Add more closure tests.
|
2020-08-09 22:12:50 +08:00 |
|
Ilya Lakhin
|
39ee74112c
|
no-closure feature issue fixed
|
2020-08-09 18:42:33 +07:00 |
|
Ilya Lakhin
|
20cff87e14
|
False-positive capturing prevention bug fix
|
2020-08-09 18:35:29 +07:00 |
|
Stephen Chung
|
da3cce58d3
|
Minor refactor.
|
2020-08-08 22:59:05 +08:00 |
|
Ilya Lakhin
|
45d021c7ef
|
Function names capturing as external variables bug
|
2020-08-08 17:55:58 +07:00 |
|
Stephen Chung
|
ffe52bf437
|
Allow omitting the alias in import statement.
|
2020-08-05 23:23:53 +08:00 |
|
Stephen Chung
|
ae11dbbefe
|
Fix feature flags.
|
2020-08-05 22:53:01 +08:00 |
|
Stephen Chung
|
2aa08c0dd9
|
get_constant_value for FnPointer.
|
2020-08-03 23:12:42 +08:00 |
|
Stephen Chung
|
4079164bfd
|
Implement closures.
|
2020-08-03 12:10:20 +08:00 |
|
Stephen Chung
|
60891e694f
|
Streamline code and feature gates.
|
2020-07-31 22:30:23 +08:00 |
|
Ilya Lakhin
|
89f75bbf0c
|
Merge remote-tracking branch 'schungx/closures' into closures
|
2020-07-31 13:05:16 +07:00 |
|
Ilya Lakhin
|
060dd33046
|
Shared Dynamic tests and fixes in Engine; Also fixed a bug in Parser variable capturing
|
2020-07-31 10:47:22 +07:00 |
|
Ilya Lakhin
|
aa87a7f5ef
|
Fixes in Engine to properly interpret Shared Dynamic
|
2020-07-31 10:47:22 +07:00 |
|
Stephen Chung
|
a7ff207636
|
Use Scope::flatten_clone for capturing.
|
2020-07-30 23:29:30 +08:00 |
|
Stephen Chung
|
98b294c699
|
Implement capturing.
|
2020-07-30 18:18:28 +08:00 |
|
Stephen Chung
|
691e04292f
|
Put externals in ScriptFnDef.
|
2020-07-30 13:28:06 +08:00 |
|
Stephen Chung
|
721c578407
|
Use HashMap for externals.
|
2020-07-29 23:34:48 +08:00 |
|
Stephen Chung
|
1465ba2315
|
Refactor auto-currying.
|
2020-07-29 22:43:50 +08:00 |
|
Stephen Chung
|
a5a3bbd399
|
Merge pull request #19 from Eliah-Lakhin/closures
Autocurry feature
|
2020-07-29 21:24:43 +08:00 |
|
Ilya Lakhin
|
8fc16b40e6
|
Code style issues fixed
|
2020-07-29 20:17:18 +07:00 |
|
Ilya Lakhin
|
a856a8bbcb
|
max_expr_depth bug fix
|
2020-07-29 19:04:33 +07:00 |
|
Ilya Lakhin
|
48356abc83
|
Autocurry fixes and test
|
2020-07-29 18:52:54 +07:00 |
|
Ilya Lakhin
|
8e51988b66
|
A prototype of a new feature to automatically curry of external scope variables
|
2020-07-29 16:56:32 +07:00 |
|
Stephen Chung
|
afbcd0fc0b
|
Replace StaticVec with SmallVec.
|
2020-07-29 16:10:06 +08:00 |
|
Stephen Chung
|
b63ff56e09
|
Make sure we keep the starting position of each statement (for future uses).
|
2020-07-28 10:26:20 +08:00 |
|
Stephen Chung
|
a3a167424b
|
Allow Rust functions in FnPtr::call_dynamic.
|
2020-07-27 12:52:32 +08:00 |
|
Stephen Chung
|
ec5082c328
|
Better handling of reserved keywords.
|
2020-07-26 22:25:30 +08:00 |
|
Stephen Chung
|
6b600704a3
|
Avoid warnings.
|
2020-07-26 15:53:22 +08:00 |
|
Stephen Chung
|
c825de6f77
|
Mark internal data structures with [INTERNALS].
|
2020-07-25 16:05:08 +08:00 |
|
Stephen Chung
|
284e58e8a1
|
Improve documentation on internal types.
|
2020-07-25 15:52:27 +08:00 |
|
Stephen Chung
|
a58207aaa9
|
Change ScriptFnDef to use ImmutableString.
|
2020-07-25 14:06:13 +08:00 |
|
Stephen Chung
|
abf66850f6
|
Enable custom syntax without internals.
|
2020-07-22 17:05:13 +08:00 |
|
Stephen Chung
|
e6c3f8134d
|
Avoid copying property name for map property access.
|
2020-07-21 20:59:12 +08:00 |
|
Stephen Chung
|
a5fa8322e9
|
Avoid pulling in std for no-std.
|
2020-07-20 20:23:35 +08:00 |
|
Stephen Chung
|
cf36dc5a57
|
Support for anonymous functions.
|
2020-07-19 17:14:55 +08:00 |
|
Stephen Chung
|
2f33edb762
|
FIx no_std.
|
2020-07-19 09:10:22 +08:00 |
|
Stephen Chung
|
3ae7cf4018
|
Improve treatment of disabled symbols and custom symbols.
|
2020-07-17 14:50:23 +08:00 |
|
Stephen Chung
|
d119e13b79
|
Allow binding of this pointer in FnPtr calls.
|
2020-07-17 10:18:07 +08:00 |
|
Stephen Chung
|
16fbfbb606
|
Enable call in function-call style.
|
2020-07-16 12:09:31 +08:00 |
|
Stephen Chung
|
2a8d63fd5f
|
Refine custom syntax.
|
2020-07-11 15:09:17 +08:00 |
|
Stephen Chung
|
ebffbf0f98
|
Refine docs and add custom syntax.
|
2020-07-10 22:01:47 +08:00 |
|
Stephen Chung
|
99164ebceb
|
Add custom syntax.
|
2020-07-09 19:54:28 +08:00 |
|
Stephen Chung
|
2b3f10f2c5
|
Define functions anywhere during parsing.
|
2020-07-06 22:57:50 +08:00 |
|
Stephen Chung
|
3e45d5d9a5
|
Refine docs and API.
|
2020-07-06 13:01:57 +08:00 |
|
Stephen Chung
|
ea86888638
|
Add new &Module parameter to native functions.
|
2020-07-06 12:04:02 +08:00 |
|
Stephen Chung
|
495d202af4
|
Add new AST API.
|
2020-07-06 10:02:54 +08:00 |
|
Stephen Chung
|
e390dd73e6
|
Add custom operators.
|
2020-07-05 17:41:45 +08:00 |
|
Stephen Chung
|
936a3ff44a
|
Add feature to disable symbols.
|
2020-07-05 15:23:51 +08:00 |
|
Stephen Chung
|
368b4a480b
|
Reformat code.
|
2020-07-04 22:53:00 +08:00 |
|
Stephen Chung
|
2b2deba5e0
|
Remove serde from default feature.
|
2020-07-03 22:48:33 +08:00 |
|
Stephen Chung
|
78c94daf46
|
Add ser::to_dynamic.
|
2020-07-03 22:42:56 +08:00 |
|
Stephen Chung
|
760c13d36e
|
Fix features.
|
2020-07-01 22:21:43 +08:00 |
|
Stephen Chung
|
e614790897
|
Enable function pointers even under no_function.
|
2020-06-30 18:34:58 +08:00 |
|
Stephen Chung
|
d6a08be223
|
Refactor.
|
2020-06-29 23:55:28 +08:00 |
|
Stephen Chung
|
527d41d0e3
|
No modules in scope.
|
2020-06-28 15:49:24 +08:00 |
|
Stephen Chung
|
aac04a5e53
|
Remove modules from Scope and use separate stack.
|
2020-06-27 23:56:24 +08:00 |
|
Stephen Chung
|
175c3ccaec
|
OOP support.
|
2020-06-26 10:39:18 +08:00 |
|
Stephen Chung
|
58c198776f
|
Code cleanup.
|
2020-06-25 11:07:46 +08:00 |
|
Stephen Chung
|
54c5c139f9
|
Add internals feature.
|
2020-06-23 10:43:24 +08:00 |
|
Stephen Chung
|
7cc1a3f5dc
|
Change Map keys to ImmutableString to facilitate fast keys().
|
2020-06-21 16:37:05 +08:00 |
|
Stephen Chung
|
1adf3cc39a
|
Support for trailing commas.
|
2020-06-16 22:14:46 +08:00 |
|
Stephen Chung
|
0c6a939c66
|
Better convert LexError to ParseError.
|
2020-06-14 16:56:36 +08:00 |
|
Stephen Chung
|
bb691a0313
|
Add maximum data size limits.
|
2020-06-14 14:25:47 +08:00 |
|
Stephen Chung
|
6cc27eb9f4
|
Better error messages.
|
2020-06-11 23:21:39 +08:00 |
|
Stephen Chung
|
d92613eaf6
|
Fix parse positions.
|
2020-06-11 23:08:00 +08:00 |
|
Stephen Chung
|
8f55a15ab0
|
Collect parse settings into struct type.
|
2020-06-11 22:03:47 +08:00 |
|
Stephen Chung
|
0ac3a7d8b4
|
Use type alias TokenStream.
|
2020-06-11 18:13:33 +08:00 |
|
Stephen Chung
|
56eb659d5a
|
Unify all functions into CallableFunction type, remove FunctionsLib.
|
2020-06-05 15:14:42 +08:00 |
|
Stephen Chung
|
ec6e3daabb
|
Refactor.
|
2020-06-03 10:44:36 +08:00 |
|
Stephen Chung
|
b8b12055b9
|
Disable if-expression when parsing expressions.
|
2020-06-01 13:26:20 +08:00 |
|
Stephen Chung
|
6d190096fd
|
Fix bug with bracket postfix when no_index.
|
2020-06-01 13:03:01 +08:00 |
|
Stephen Chung
|
cec6748ac6
|
Remove no_module gates to prepare for plugins.
|
2020-06-01 10:58:14 +08:00 |
|
Stephen Chung
|
5f727335a6
|
Add type info.
|
2020-05-31 12:36:42 +08:00 |
|
Stephen Chung
|
c9de37e8d1
|
Hash functions only once via custom hasher.
|
2020-05-31 00:02:23 +08:00 |
|
Stephen Chung
|
acd0f6b56b
|
!= defaults to true for different parameter types.
|
2020-05-30 13:49:40 +08:00 |
|
Stephen Chung
|
2bcc51cc45
|
Fix bug in index expressions.
|
2020-05-30 10:27:48 +08:00 |
|
Stephen Chung
|
854634afa0
|
Allow native overriding implementation of assignment operators.
|
2020-05-27 13:22:10 +08:00 |
|
Stephen Chung
|
b34d5fe3a1
|
Complete ImmutableString.
|
2020-05-26 14:14:03 +08:00 |
|
Stephen Chung
|
95e67c48bd
|
Optimize op-assignment statement.
|
2020-05-25 20:14:31 +08:00 |
|
Stephen Chung
|
99ea2b33c9
|
Use immutable strings.
|
2020-05-25 13:44:28 +08:00 |
|
Stephen Chung
|
0374311cf6
|
Optimize hot path of operators calling.
|
2020-05-24 16:40:00 +08:00 |
|
Stephen Chung
|
d56634cac7
|
Complete built-in operators.
|
2020-05-24 00:29:06 +08:00 |
|
Stephen Chung
|
b49e1e199a
|
Build-in certain common operators.
|
2020-05-23 18:59:28 +08:00 |
|
Stephen Chung
|
e224550861
|
Move boxing of ParseError into ParseErrorType.
|
2020-05-22 18:28:13 +08:00 |
|
Stephen Chung
|
4a1fd66b9f
|
Reduce Rc/Arc wrapping for functions.
|
2020-05-19 22:25:57 +08:00 |
|
Stephen Chung
|
ab76a69b12
|
Avoid repeating empty TypeId's when calculating hash.
|
2020-05-19 20:07:51 +08:00 |
|
Stephen Chung
|
1824dced69
|
Limit expression/statement nesting depths.
|
2020-05-18 19:32:22 +08:00 |
|
Stephen Chung
|
8b5550eeb6
|
Complete StaticVec implementation.
|
2020-05-17 22:19:49 +08:00 |
|
Stephen Chung
|
a2c50879fe
|
Fix dropping issues with StaticVec and use it everywhere.
|
2020-05-17 00:24:07 +08:00 |
|
Stephen Chung
|
cabceb7498
|
Better handling of errors during function calls.
|
2020-05-13 21:58:38 +08:00 |
|
Stephen Chung
|
996a54279c
|
Pre-calculate property getter/setter function names.
|
2020-05-13 10:19:18 +08:00 |
|
Stephen Chung
|
ec67879759
|
Derive more standard traits.
|
2020-05-12 18:48:25 +08:00 |
|
Stephen Chung
|
2e28967565
|
Fix bug with wrong method call hash.
|
2020-05-12 10:20:29 +08:00 |
|
Stephen Chung
|
33c9be7efc
|
Reformat.
|
2020-05-11 23:48:50 +08:00 |
|
Stephen Chung
|
4a8710a4a9
|
Create NativeCallable trait.
|
2020-05-11 13:36:50 +08:00 |
|
Stephen Chung
|
8aa0e2ceb4
|
Use StaticVec to avoid most allocations with function arguments.
|
2020-05-10 21:25:47 +08:00 |
|
Stephen Chung
|
80debbc432
|
Refactor.
|
2020-05-10 00:19:13 +08:00 |
|
Stephen Chung
|
a7bfac21bd
|
Reducing boxing and sizes of Expr/Stmt.
|
2020-05-09 21:46:38 +08:00 |
|
Stephen Chung
|
79f39bd702
|
Pre-calculate function call hashes.
|
2020-05-09 16:15:50 +08:00 |
|
Stephen Chung
|
0d20137d6c
|
Implement private modifier for functions.
|
2020-05-09 11:29:30 +08:00 |
|
Stephen Chung
|
d1de84fdd2
|
Add comments and fix documentation.
|
2020-05-09 10:00:59 +08:00 |
|
Stephen Chung
|
e50fcc385f
|
Pre-calculate index for module-qualified calls.
|
2020-05-08 22:38:56 +08:00 |
|
Stephen Chung
|
eb52bfa28a
|
Add export statement.
|
2020-05-08 16:49:24 +08:00 |
|
Stephen Chung
|
89d75b1b11
|
Fix compilation errors for no_module.
|
2020-05-08 14:50:48 +08:00 |
|
Stephen Chung
|
e6fabe58cc
|
Unify function hash calculations, pre-hash module-qualified function calls.
|
2020-05-08 11:34:56 +08:00 |
|
Stephen Chung
|
5f12391ec6
|
Use hashed lookup for module-qualified functions and variables.
|
2020-05-08 00:19:08 +08:00 |
|
Stephen Chung
|
f3c0609377
|
Catch more assignment errors at parse time.
|
2020-05-07 12:25:09 +08:00 |
|
Stephen Chung
|
e966f5d49e
|
Fix bug with let statement without expression.
|
2020-05-06 22:54:34 +08:00 |
|
Stephen Chung
|
d75a8bc6cd
|
Make sure all features compile correctly.
|
2020-05-06 19:45:17 +08:00 |
|
Stephen Chung
|
88fec57394
|
Make module_resolver optional and remove NullModuleResolver.
|
2020-05-06 16:09:44 +08:00 |
|
Stephen Chung
|
aae9e43109
|
Implement module-qualified functions.
|
2020-05-05 17:51:40 +08:00 |
|
Stephen Chung
|
38e717a838
|
Build Module type plus engine hooks.
|
2020-05-05 15:00:10 +08:00 |
|
Stephen Chung
|
c03b162b7e
|
Refactor code base and split into more module files.
|
2020-05-05 12:24:13 +08:00 |
|
Stephen Chung
|
143861747d
|
Rename sub-scope/SubScope to module.
|
2020-05-05 10:39:12 +08:00 |
|
Stephen Chung
|
64036f69ca
|
Refine modules.
|
2020-05-04 23:07:42 +08:00 |
|
Stephen Chung
|
2bdd174f16
|
Add import statement.
|
2020-05-04 19:36:58 +08:00 |
|
Stephen Chung
|
ead9716f6d
|
Add namespacing syntax.
|
2020-05-04 17:43:54 +08:00 |
|
jhwgh1968
|
7011e4068f
|
Start on namespaces
|
2020-05-03 12:19:01 -05:00 |
|
Stephen Chung
|
d83b829810
|
Avoid copying arguments for function calls.
|
2020-05-03 16:54:24 +08:00 |
|
Stephen Chung
|
c7c7fe3dfc
|
Reduce size of Expr and Stmt by Boxing strings.
|
2020-05-01 17:32:39 +08:00 |
|
Stephen Chung
|
21c3edb31e
|
Streamline.
|
2020-04-29 16:11:54 +08:00 |
|
Stephen Chung
|
304c658f89
|
Use scope offset for variable access.
|
2020-04-28 23:05:03 +08:00 |
|
Stephen Chung
|
9ad9dd52ab
|
Reduce unnecessary Cow's in Expr.
|
2020-04-28 19:39:36 +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
|
5aaaa7be3b
|
Simplify parsing by expecting the tokens stream will never be exhausted.
|
2020-04-23 13:24:24 +08:00 |
|
Stephen Chung
|
fbfea60903
|
Disallow assignments in expressions.
|
2020-04-22 17:37:06 +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
|
0306d15c04
|
Split core and standard libraries into packages.
|
2020-04-21 00:11:25 +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
|
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
|
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
|
d73cfb6da5
|
Allow escaping quotes in strings.
|
2020-04-11 12:46:10 +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
|
adbfceb5be
|
Do not omit error enum variants.
|
2020-04-10 12:16:39 +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
|
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
|
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
|
29150faef2
|
Improve AST evaluation efficiency by sharing functions.
|
2020-04-04 22:00:44 +08:00 |
|
Stephen Chung
|
92b549b828
|
Add features info in docs.
|
2020-04-03 19:42:01 +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
|
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
|
01c0b51017
|
Change object maps to #{ ... }
|
2020-03-30 17:40:26 +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
|
796690f506
|
Detect duplicated parameters in function definitions.
|
2020-03-27 16:46:08 +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
|
5aea997672
|
Refine Scope API.
|
2020-03-25 11:27:18 +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
|
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
|
6a6c5f30de
|
Add eval function.
|
2020-03-19 19:53:42 +08:00 |
|
Stephen Chung
|
b3efb8b264
|
Disallow variable names starting with _ + digit.
|
2020-03-18 23:09:53 +08:00 |
|
Stephen Chung
|
019e73bc7e
|
Allow empty statements.
|
2020-03-18 18:41:18 +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
|
b26ca753c2
|
Mandatory semiclolons separating statements.
|
2020-03-18 10:40:07 +08:00 |
|
Stephen Chung
|
abe5365bfd
|
Improve error messages to lists.
|
2020-03-18 10:40:07 +08:00 |
|
Trangar
|
c8a9df0a0a
|
Added no_std support
|
2020-03-17 19:26:11 +01: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
|
01cf777961
|
Use matches! macro.
|
2020-03-14 23:41:15 +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
|
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
|
9844ae8665
|
Add constants.
|
2020-03-13 18:12:41 +08:00 |
|
Stephen Chung
|
9bd66c7db3
|
Minor improvements to the optimizer.
|
2020-03-12 23:46:52 +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
|
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
|
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
|
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
|
2d80ee2f18
|
Refine optimizer.
|
2020-03-10 11:22:41 +08:00 |
|
Stephen Chung
|
55e7af7b04
|
Add AST optimizer.
|
2020-03-09 21:57:07 +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
|
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
|
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
|
07e396b3f5
|
Allow chaining of array indexing operations.
|
2020-03-06 10:50:52 +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
|
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
|
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
|
95d0b2e620
|
Better error messages for function definitions.
|
2020-03-03 16:23:55 +08:00 |
|
Stephen Chung
|
fa13588f69
|
Limit script size to avoid overflowing positions.
|
2020-03-03 13:30:46 +08:00 |
|
Stephen Chung
|
0e96e1080c
|
Comprehensive error line number/character position during evaluation.
|
2020-03-02 22:13:14 +08:00 |
|
Stephen Chung
|
ed8d2ac20f
|
Add else if control flow.
|
2020-03-02 17:04:56 +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
|
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 |
|