Commit Graph

256 Commits

Author SHA1 Message Date
b17da5ad3c Get built-in functions working 2024-08-07 18:39:28 -04:00
4d7f59aee2 Begin implementing better built-in features 2024-08-07 18:24:25 -04:00
06f3a9b746 Remove built-in value statements 2024-08-07 15:53:43 -04:00
cda0203242 Replace spans with a generic type 2024-08-07 15:47:37 -04:00
76a67c5117 Add parse examples 2024-08-07 12:32:18 -04:00
e295aebf56 Add examples 2024-08-07 12:13:49 -04:00
f64babc546 Add more analysis to the analyzer 2024-08-07 11:57:15 -04:00
7328467e64 Add analysis step to run function 2024-08-07 11:38:08 -04:00
5d01f1caf9 Implement parsing and evaluation of boolean expressions 2024-08-07 10:50:19 -04:00
692f1145cd Implement lexing for boolean values 2024-08-07 10:41:27 -04:00
a60df0274c Add the expected_type function for statements 2024-08-07 10:03:33 -04:00
dfee50003a Clean up dependencies and add a few more tests 2024-08-05 18:45:43 -04:00
28e0ec27e8 Implement is_even and is_odd 2024-08-05 18:34:20 -04:00
6983d282d8 Begin adding support for more built-in properties 2024-08-05 15:54:48 -04:00
8c5ac0b89e Add parsing for list access 2024-08-05 14:58:58 -04:00
80a7700d68 Implement property access 2024-08-05 14:31:08 -04:00
b81c65629b Add docs 2024-08-05 00:54:12 -04:00
61f136edd2 Refactor and clean up 2024-08-05 00:40:51 -04:00
2268fc827d Add analyzer; Rename some things 2024-08-04 23:11:04 -04:00
f2bfe2ed06 Add basic VM 2024-08-04 22:15:31 -04:00
0ca443b133 Add test 2024-08-04 21:39:57 -04:00
161e99a2dd Add list parsing 2024-08-04 21:31:18 -04:00
bd491c014d Build spans into instructions 2024-08-04 20:08:43 -04:00
51c7ae148c Add float lexing 2024-08-04 19:41:00 -04:00
1607db20f9 Rename Token::Integer to Token::Number 2024-08-04 19:28:28 -04:00
5d7122aefa Add tests and clean up 2024-08-04 19:25:44 -04:00
cc188a233b Overhaul project structure 2024-08-03 20:23:52 -04:00
473f0ee075 Begin adding hand-written parser for Dust 2024-08-03 18:40:27 -04:00
2f06b18c3c Move type module out of abstract tree module 2024-08-02 16:33:40 -04:00
3fae807d9f Clean up with clippy 2024-08-02 15:21:15 -04:00
0e479197a7 Clean up 2024-08-02 11:01:02 -04:00
175d82d382 Fix and clean up interpreter changes 2024-07-28 13:11:42 -04:00
77e84f9fa8 Separate interpreter into its own module 2024-07-28 13:06:59 -04:00
02dd33ab1a Add error; Clean up struct values 2024-07-28 12:52:07 -04:00
9640feb65b Add pretty errors example; Add validation in math 2024-07-15 17:21:18 -04:00
d3f5585d07 Add interpreter context management 2024-07-15 16:58:54 -04:00
501801b63e Rearrange repo; Add rust example 2024-07-15 16:42:49 -04:00
a3917238d9 Add docs 2024-07-15 15:49:34 -04:00
a02cee0b9f Add two new tests and refactor to pass them 2024-07-13 10:47:24 -04:00
3addb767fa Normalize top-level API 2024-07-12 20:54:23 -04:00
62ece61ce6 Fix test 2024-07-12 19:53:10 -04:00
2dbbc7b128 Make errors nice 2024-07-12 16:16:28 -04:00
c47d09fd1d Add enum type validation 2024-07-12 16:04:47 -04:00
790438d1e3 Add type arguments to enum instances 2024-07-12 11:08:53 -04:00
ad409b69f3 Run clippy and clean up everything 2024-07-12 10:20:52 -04:00
4ab838509b Break one test with new validation 2024-07-11 18:15:03 -04:00
994fa7310b Fix all warnings 2024-07-11 17:57:35 -04:00
c85958064a Fix test; Pass all tests 2024-07-11 17:54:59 -04:00
f3fe03a95f Fix function context bug 2024-07-11 17:22:30 -04:00
1794f7559c Clean up 2024-07-11 08:10:12 -04:00
48f3ccdd58 Fix inheritance; Add a test 2024-07-09 23:01:54 -04:00
dd72faf7c8 Continue experimenting with context and scopes 2024-07-06 02:41:43 -04:00
e84e022eed Experiment with context scopes 2024-07-04 14:40:26 -04:00
0e52ed7a49 Improve context recursion 2024-07-02 21:06:23 -04:00
dce6dfbc40 Improve context recursion 2024-07-02 20:25:47 -04:00
ecd83a17e7 Fix function scope bug 2024-07-02 13:45:32 -04:00
9bd39338d5 Combine define and verify functions on AST nodes 2024-07-02 13:11:31 -04:00
db94fbdb5b Fix test 2024-07-01 18:52:54 -04:00
7ec640a3a1 Improve error 2024-07-01 18:02:12 -04:00
92f098b58b Implement null statement 2024-07-01 17:49:49 -04:00
7e152f9f51 Continue standard library implementation 2024-07-01 16:59:39 -04:00
699576c4c7 Add use statements with pre-compile std library 2024-07-01 14:23:01 -04:00
a79cb0b3e1 Begin adding use statement 2024-07-01 10:40:36 -04:00
1e7636903e Add use token 2024-06-28 15:59:20 -04:00
adfd3aa5d4 Add list type check; Clean up 2024-06-28 15:35:18 -04:00
fe0bb0a0b5 Clean up 2024-06-26 18:09:38 -04:00
29bbcb019d Add and pass validation test 2024-06-26 16:24:41 -04:00
9a2e4f3649 Add more Display implementations 2024-06-26 14:44:23 -04:00
6130f73ca8 Continue writing Display implementations 2024-06-26 14:21:55 -04:00
822f12b44d Add Display implementations for abstract tree 2024-06-26 12:50:46 -04:00
49fe4555c6 Clean up 2024-06-26 11:35:39 -04:00
a177f19f28 Pass all tests 2024-06-24 16:48:39 -04:00
2da0a6a28b Clean up; Add example 2024-06-24 15:07:11 -04:00
7dc7f7a351 Fix type generic bug 2024-06-24 14:44:10 -04:00
97268c272e Use rust-style type parameter syntax 2024-06-24 13:54:37 -04:00
37d54499da Use rust-style turbofish 2024-06-24 13:48:31 -04:00
2cbeb4b551 Clean up 2024-06-24 11:14:43 -04:00
fbaf640fce Add global identifier cache 2024-06-24 10:46:37 -04:00
38ffd9b01b Add validations 2024-06-24 10:26:38 -04:00
a5c5075e6b Pass all tests 2024-06-24 10:09:07 -04:00
63f648c3ac Pass all tests 2024-06-24 09:09:38 -04:00
2e9a523058 Continue fixing built-in functions 2024-06-24 08:17:06 -04:00
18859cda77 Begin fixing built-in functions 2024-06-24 07:13:54 -04:00
f106d64367 Simplify built-in functions 2024-06-24 05:26:49 -04:00
c75dedb117 Add fields to map type 2024-06-24 04:16:05 -04:00
5e8945cab5 Begin adding fields to map type 2024-06-24 04:02:44 -04:00
37d59f562d Fix io.read_line function 2024-06-24 02:58:19 -04:00
49dfdc4e10 Pass all tests 2024-06-24 02:26:19 -04:00
b6b7a61727 Fix if/else bug 2024-06-24 02:18:58 -04:00
fbcb28ce24 Fix built-in function bug 2024-06-24 02:01:08 -04:00
ff5c4972eb Fix built-in function bug 2024-06-24 01:41:16 -04:00
40172e3ffb Fix assignment bug 2024-06-24 00:47:11 -04:00
64ce3d56e4 Fix function call bug 2024-06-24 00:38:06 -04:00
af20dab0d2 Refactor function types 2024-06-23 22:39:33 -04:00
572d5a9d18 Finish built-in function refactoring 2024-06-22 19:44:33 -04:00
34cea3518d Begin refactoring built-ins 2024-06-22 17:17:35 -04:00
6bdefd0698 Continue major refactoring 2024-06-22 13:55:43 -04:00
d06a614cfa Load standard library correctly 2024-06-22 11:50:44 -04:00
a05d9016f2 Begin passing tests 2024-06-22 11:44:09 -04:00
890baa5d51 Refactoring and troubleshooting 2024-06-22 07:46:10 -04:00