Commit Graph

658 Commits

Author SHA1 Message Date
Stephen Chung
bf02d040e2 Use tokens to speed up function name lookup. 2022-09-25 23:03:18 +08:00
Stephen Chung
def1a683ef Distinguish string literals from identifiers in custom syntax parser. 2022-09-24 16:59:01 +08:00
Stephen Chung
5d275b5307 Simplify to calc_fn_hash. 2022-09-21 11:46:23 +08:00
Stephen Chung
40a12b2b7d Remove key type from StraightHashMap. 2022-09-12 23:08:38 +08:00
Stephen Chung
c1ae9e0405 Add state to custom syntax. 2022-09-12 12:03:32 +08:00
quake
239438754c perf: change BTreeMap to StraightHashMap 2022-09-05 13:13:06 +09:00
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