Commit Graph

702 Commits

Author SHA1 Message Date
Stephen Chung
702bb9030a Make fast operators the default. 2022-09-03 22:07:36 +08:00
Stephen Chung
0516e8088c Add fast-ops feature. 2022-09-02 23:45:25 +08:00
Stephen Chung
044484c756 Merge 1.9.1 fixes. 2022-08-29 22:42:46 +08:00
Stephen Chung
0870318e4e Fix bug in strict variables mode. 2022-08-29 22:26:07 +08:00
Stephen Chung
bf5d6ab35a Shut up clippy. 2022-08-27 16:26:41 +08:00
Stephen Chung
d80184ba14 Allow if-expressions and switch-expressions in Engine::eval_expression. 2022-08-26 23:10:58 +08:00
Stephen Chung
2f02b30b6e Use String::new() for empty strings. 2022-08-21 17:35:44 +08:00
Stephen Chung
a9b6e8b98c Fix builds. 2022-08-18 21:16:42 +08:00
Stephen Chung
b75ea94908 Remove Interners struct. 2022-08-14 14:32:16 +08:00
Stephen Chung
28743594d0 Use interned strings for AST nodes. 2022-08-13 18:07:42 +08:00
Stephen Chung
cba394d73c Revise strings interning. 2022-08-12 16:34:57 +08:00
Stephen Chung
bfc766f725 Use strings interner. 2022-08-11 22:56:23 +08:00
Stephen Chung
be448dfe4d Use identifiers in format! 2022-08-11 19:01:23 +08:00
Stephen Chung
255af006ee Fix doc comments. 2022-08-10 12:48:37 +08:00
Stephen Chung
8dc7137913 Disallow import index in closures also. 2022-08-09 21:46:34 +08:00
Stephen Chung
ac93a0bbbc Fix bug in namespace searching. 2022-08-09 21:35:45 +08:00
Stephen Chung
d9ffac17fa Fix tests. 2022-08-05 23:45:40 +08:00
Stephen Chung
d8532b48b6 Add function pointer short-hand. 2022-08-05 23:30:44 +08:00
Stephen Chung
2f948a784c Clean up more clippy. 2022-07-27 18:04:59 +08:00
Stephen Chung
39dee556c4 Clean up clippy. 2022-07-27 16:04:24 +08:00
Stephen Chung
5d799fd325 Add module documentation. 2022-07-25 13:40:23 +08:00
Stephen Chung
e8d6e3f57d Add unreachable comments. 2022-07-23 21:00:58 +08:00
Stephen Chung
5149c56256 Streamline switch case AST structure. 2022-07-19 13:33:53 +08:00
Stephen Chung
f2724444bb Make default switch case Optional. 2022-07-18 22:30:09 +08:00
Stephen Chung
7dca916c45 Allow duplicated switch cases. 2022-07-18 13:40:41 +08:00
Stephen Chung
4b760d1d0f Unroll switch ranges if possible. 2022-07-18 08:54:10 +08:00
Stephen Chung
b4dbc7619a Add no_custom_syntax. 2022-07-05 22:59:03 +08:00
Stephen Chung
b6528bd51d Reduce usage of as_ref and as_mut. 2022-07-05 16:26:38 +08:00
Stephen Chung
9319f87a7b Fix builds. 2022-07-04 17:47:59 +08:00
Stephen Chung
dee66a409f Add case alternatives for switch. 2022-07-04 17:42:24 +08:00
Stephen Chung
2b44778a5c Add elvis operator for indexing. 2022-06-12 00:32:12 +08:00
Stephen Chung
8999872d62 Add null coalescing operator. 2022-06-10 11:22:33 +08:00
Stephen Chung
0f1e51b1c9 Support Elvis operator. 2022-06-10 10:26:06 +08:00
Stephen Chung
09e19790fe Fix builds. 2022-06-09 18:22:53 +08:00
Stephen Chung
dcaac20eb9 Strict mode in functions check for static modules. 2022-06-09 17:59:28 +08:00
Stephen Chung
285bf23dfa Minor refactor. 2022-06-09 08:41:51 +08:00
Stephen Chung
e5f6b28abd Fix warnings. 2022-06-08 17:06:49 +08:00
Stephen Chung
493c4a71ff Add lifetime. 2022-05-26 18:17:46 +08:00
Stephen Chung
130b93d029 Use bit-flags for options. 2022-05-19 21:40:22 +08:00
Stephen Chung
857ae7a64a Comments update. 2022-05-19 14:41:48 +08:00
Stephen Chung
04df4d2547 Fix indexing parsing. 2022-05-17 11:06:34 +08:00
Stephen Chung
c69f98c2c4 Add custom state. 2022-05-02 00:03:45 +08:00
Stephen Chung
a6c2c00479 Allow variables in scope for strict vars. 2022-04-22 12:12:36 +08:00
Stephen Chung
6b8ddd925b Allow scope constants in strict variables mode. 2022-04-21 13:21:53 +08:00
Stephen Chung
5e4f27ae25 Add Token::Unit. 2022-04-21 10:04:46 +08:00
Stephen Chung
299d6ef308 Type checking in switch case condition. 2022-04-19 21:45:11 +08:00
Stephen Chung
770b2e04cc Simplify switch condition. 2022-04-19 16:20:43 +08:00
Stephen Chung
60a933862e Streamline op-assignments. 2022-04-18 23:12:47 +08:00
Stephen Chung
daf73d5341 Make caches optional for EvalContext. 2022-04-16 23:32:14 +08:00
Stephen Chung
855cb76246 Rename EvalState to Caches. 2022-04-16 16:36:53 +08:00
Stephen Chung
63359f3f81 Unused parameters naming. 2022-04-11 16:29:16 +08:00
Stephen Chung
1777ee7f6f Allow strings to be iterable. 2022-04-09 13:37:43 +08:00
Stephen Chung
b35d965e55 Reverse Box<[...]> to Vec. 2022-03-06 16:37:27 +08:00
Stephen Chung
8bda8c64df Refine data structures 2022-03-05 17:57:23 +08:00
Stephen Chung
e06c2b2abb Remove constants in function call expressions. 2022-03-05 12:06:47 +08:00
Stephen Chung
0335035b0f Fix bug with eager optimization of method calls. 2022-03-04 12:22:44 +08:00
Stephen Chung
0e9a16e437 Add checks for is_empty. 2022-03-03 13:02:57 +08:00
Stephen Chung
99ca6de822 Respect barrier when reusing shadowed variable. 2022-02-28 22:13:03 +08:00
Stephen Chung
d41d36c8bb Simplify ParseState. 2022-02-28 16:32:08 +08:00
Stephen Chung
aee92f3b7b Move parser into Engine. 2022-02-28 14:37:46 +08:00
Stephen Chung
b17e891b63 Reduce size of Token. 2022-02-26 23:18:47 +08:00
Stephen Chung
9ef522b699 Use SmartString in parsing. 2022-02-26 17:28:58 +08:00
Stephen Chung
8205547d8a Use bitflags. 2022-02-25 11:42:59 +08:00
Stephen Chung
dd566ed1e1 Fix builds. 2022-02-19 12:26:17 +08:00
Stephen Chung
67a6638818 Allow variable to overwrite constant when shadowing. 2022-02-18 19:14:42 +08:00
Stephen Chung
bb04fab011 Optimize variable shadowing. 2022-02-18 15:04:46 +08:00
Stephen Chung
83786c992b Fix parser bug. 2022-02-18 11:05:58 +08:00
Stephen Chung
0d2e3d82f3 Reduce size of Stmt. 2022-02-16 17:51:14 +08:00
Stephen Chung
cf0660e36b Expand StmtBlock inline size. 2022-02-16 12:57:26 +08:00
Stephen Chung
fb9964e1a3 Revise on_def_var API. 2022-02-15 10:56:05 +08:00
Stephen Chung
5bb6ce835f Run var def filter during parsing. 2022-02-13 18:46:25 +08:00
Stephen Chung
d23d1159ab Fix positions. 2022-02-10 17:55:32 +08:00
Stephen Chung
e5a673b3ae Add position info for closures. 2022-02-09 13:40:51 +08:00
Stephen Chung
3b9dbd5fce Add Span. 2022-02-08 23:01:47 +08:00
Stephen Chung
8cf6f424a5 Use turbofish notation. 2022-02-08 21:28:15 +08:00
Stephen Chung
7686ca619a Use .. for (_). 2022-02-08 09:46:14 +08:00
Stephen Chung
f8cee0fe4e Simplify using .. 2022-02-08 09:02:15 +08:00
Stephen Chung
187a20fd8b Refactor OptimizationLevel. 2022-02-07 21:03:39 +08:00
Stephen Chung
cfbf0397a6 Better position of assignment errors. 2022-02-06 21:24:02 +08:00
Stephen Chung
f09abd7ab3 Fix builds. 2022-02-04 13:31:33 +08:00
Stephen Chung
3be27746e0 Add allow_shadowing. 2022-02-04 13:20:47 +08:00
Stephen Chung
6c1c8bc538 Improve position display. 2022-02-04 12:04:33 +08:00
Stephen Chung
f1458e79e0 Improve AST debug display. 2022-01-31 13:38:27 +08:00
Stephen Chung
7b92a80c32 Fix encapsulated environment in module functions. 2022-01-30 17:27:13 +08:00
Stephen Chung
6b02dde848 Gate dead code for no_module. 2022-01-29 11:09:43 +08:00
Stephen Chung
c93e94c7cd Fix builds. 2022-01-28 21:35:16 +08:00
Stephen Chung
66af69aaff Refactor and add state to debugger. 2022-01-28 18:59:18 +08:00
Stephen Chung
20baae71d4 Factor tuples into structs to aid in understanding. 2022-01-28 10:11:40 +08:00
Stephen Chung
b9f2fdb635 Rename AST option flags. 2022-01-28 08:28:17 +08:00
Stephen Chung
fc87dec128 Add debugging interface. 2022-01-27 16:58:11 +08:00
Stephen Chung
37dbc68bf5 Use target_family for wasm. 2022-01-12 08:12:28 +08:00
Stephen Chung
bc6bf6c6ba Change expect("exists") to unwrap(). 2022-01-06 11:07:52 +08:00
Stephen Chung
d99953c101 Fixup AsRef<str> vs &str. 2022-01-04 15:22:48 +08:00
Stephen Chung
a6ddb64596 Fix builds. 2022-01-01 17:38:32 +08:00
Stephen Chung
64bf2eef5c Better error messages. 2021-12-30 12:19:41 +08:00
Stephen Chung
807240e249 Rename Imports to GlobalRuntimeState. 2021-12-28 11:42:52 +08:00
Stephen Chung
a78488d935 Rename Imports to GlobalRuntimeState. 2021-12-27 23:03:30 +08:00
Stephen Chung
e8b070cbf8 Fix builds. 2021-12-27 22:28:11 +08:00
Stephen Chung
9c7ced2b80 Move custom syntax to api. 2021-12-27 22:02:34 +08:00
Stephen Chung
4d226542fa Split out strings interner. 2021-12-27 21:56:50 +08:00
Stephen Chung
05d4c81e7a Use type alias for error. 2021-12-27 12:27:31 +08:00
Stephen Chung
01c35808cb Use type alias 2021-12-25 23:49:14 +08:00
Stephen Chung
5c31ec7f78 Fix array bug. 2021-12-22 22:22:20 +08:00
Stephen Chung
1c50efbac8 Unroll switch range case if range has only one number. 2021-12-22 10:48:19 +08:00
Stephen Chung
dc6896fbe2 Add OpAssignment::new_from_token. 2021-12-17 16:55:24 +08:00
Stephen Chung
b1b2c62d7d Merge branch 'v1.3-fixes' 2021-12-16 22:40:25 +08:00
Stephen Chung
10fa6844c4 Fix custom syntax with method calls. 2021-12-16 22:40:10 +08:00
Stephen Chung
fbc2b1f13d Allow non-custom reserved symbols in custom syntax. 2021-12-16 18:01:49 +08:00
Stephen Chung
f92cbe1f6d Merge branch 'v1.3-fixes' 2021-12-16 16:10:39 +08:00
Stephen Chung
224aa0ea68 Allow custom syntax inside binary operator expressions. 2021-12-16 16:06:44 +08:00
Stephen Chung
ef14079c61 Add ranges. 2021-12-15 12:06:17 +08:00
Stephen Chung
780c36e675 Simplify if let. 2021-12-12 12:33:22 +08:00
Stephen Chung
2a7a648429 Reduce feature gates. 2021-12-06 20:52:47 +08:00
Stephen Chung
6f6380ca3a Fix builds. 2021-12-04 18:07:27 +08:00
Stephen Chung
b8c4054c20 Add strict variables mode. 2021-12-04 17:57:28 +08:00
Stephen Chung
fd26654125 Add allow_looping. 2021-12-03 11:24:38 +08:00
Stephen Chung
7cd76c6d18 Add language options. 2021-12-03 11:16:35 +08:00
Stephen Chung
c5f2b0a253 Fix builds. 2021-11-29 10:17:04 +08:00
Stephen Chung
95dc2ad502 Remove fields and parameters under no_function. 2021-11-29 09:43:35 +08:00
Stephen Chung
f49ff28b82 Fix test. 2021-11-28 10:49:48 +08:00
Stephen Chung
e918e61e95 Use AsRef<str> for more flexible API. 2021-11-27 23:04:45 +08:00
Stephen Chung
d56585c877 Remove no_smartstring feature. 2021-11-27 14:24:36 +08:00
Stephen Chung
abe6b4a29b Use more const functions. 2021-11-27 14:24:06 +08:00
Stephen Chung
280b5b405e Make some new functions const. 2021-11-25 17:09:00 +08:00
Stephen Chung
b7dc94fc1d Refactor. 2021-11-16 23:13:53 +08:00
Stephen Chung
e961ae23fd Eliminate script hashes under no_function. 2021-11-16 13:42:46 +08:00
Stephen Chung
615c3acad6 Use actual outer scope for function-bang calls. 2021-11-14 22:48:57 +08:00
Stephen Chung
64b889fb95 Restructure code base. 2021-11-13 22:36:23 +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
b5898f451e Fix no_closure build. 2021-06-14 12:09:54 +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
a5031969ca New custom syntax expression types. 2021-06-10 10:16:39 +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
1e66f1963a Add counter variable to for statement. 2021-06-07 11:01:16 +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
dfea3ed22a Code style refactor. 2021-05-25 10:54:48 +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
dc9b4d7f4d Indexer as fallback to property. 2021-05-18 20:12:30 +08:00
Stephen Chung
d1fc362eec Handle constants propagation. 2021-05-16 21:21:13 +08:00
Stephen Chung
941e09d29d Guard against setters mutating constants, and allow pure setters. 2021-05-15 11:41:42 +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
2c0215ea3f Shrink arrays and use boxed slices. 2021-05-05 18:38:52 +08:00