1
0
Commit Graph

241 Commits

Author SHA1 Message Date
fab66a4877 Pass VM test 2024-08-20 02:25:22 -04:00
e3d821a1c3 Remimplement features 2024-08-20 00:15:19 -04:00
0fd19a623d Improve AST ergonomics 2024-08-17 12:15:47 -04:00
0b64afccb1 Extend VM, abstract tree and parser 2024-08-17 10:07:38 -04:00
fa67a568d9 Pass parser tests; Fix garbage collection 2024-08-17 05:32:18 -04:00
b024d81148 Continue reimplementing the language 2024-08-17 04:06:13 -04:00
447643f315 Expand Value and Expression 2024-08-16 22:43:29 -04:00
8ae453add7 Continue value overhaul 2024-08-16 17:07:49 -04:00
8bff39a7db Prepare for value overhaul 2024-08-16 11:21:20 -04:00
7d721beb31 Implement VM and Analyzer by using the new AST 2024-08-16 09:22:36 -04:00
84429ef187 Implement operator expressions in the VM 2024-08-16 06:43:29 -04:00
e911853cb5 Clean up 2024-08-16 05:24:55 -04:00
bfb07047a5 Implement VM 2024-08-16 05:14:00 -04:00
26348fb82e Continue implementing the VM 2024-08-16 00:41:52 -04:00
b48b5d4369 Begin reimplementing the VM 2024-08-15 23:17:49 -04:00
fdf324c866 Continue AST overhaul 2024-08-14 15:52:04 -04:00
43b2393d8a Begin AST overhaul 2024-08-14 14:28:39 -04:00
e7b5390a55 Add more value mutability 2024-08-14 04:59:27 -04:00
8666f1cd9b Add parsing for mutable assignment 2024-08-14 03:53:15 -04:00
535e120256 Add mutable values 2024-08-14 01:03:46 -04:00
17286896a8 Add async blocks 2024-08-13 23:45:17 -04:00
64a3ce4cd3 Implement subtraction assignment 2024-08-13 21:24:56 -04:00
5c8e72a6f7 Implement fields struct instantiation 2024-08-13 19:41:36 -04:00
b55a79d6bf Add parsing for fields structs 2024-08-13 18:48:02 -04:00
a78d560a0d Add docs 2024-08-13 18:27:03 -04:00
5757f52dbd Refactor to move assingment out of other binary operations 2024-08-13 17:34:45 -04:00
b1337900fb Add analysis to prevent tuple structs with wrong types 2024-08-13 16:46:54 -04:00
83aa53b998 Add instantiation for tuple structs 2024-08-13 16:22:40 -04:00
049790726a Add parsing for tuple structs 2024-08-13 15:12:32 -04:00
1d75bd6594 Add instantiating unit structs 2024-08-13 14:21:31 -04:00
7e7448fe52 Add parsing for unit struct defintions 2024-08-13 13:54:16 -04:00
40a71da3a5 Fix identifier caching; Add docs; Add minor fixes 2024-08-13 12:23:25 -04:00
5ad6012021 Refine parsing and lexing 2024-08-12 16:57:10 -04:00
0fb0b63a97 Fix dot notations precedence; Add some miscellaneous expansions 2024-08-12 15:02:04 -04:00
a61c1756f2 Begin fixing map property parsing 2024-08-12 11:24:24 -04:00
f62cb13089 Allow indexing lists with ranges 2024-08-12 10:43:18 -04:00
2a0737fd45 Add test; Clean up context 2024-08-12 10:29:06 -04:00
c71c4d2d07 Refactor VM to own its context 2024-08-12 08:54:21 -04:00
2c374a1cd7 Begin adding unary operators 2024-08-12 05:44:05 -04:00
74cfef1832 Work out the finer details of the garbage collector 2024-08-12 04:10:07 -04:00
2463e44301 Test and implement basic garbage collection 2024-08-11 22:41:40 -04:00
78228ce8d6 Add new analyzer and vm tests 2024-08-11 22:02:17 -04:00
f2c0786bfb Simplify "run" function 2024-08-11 21:42:16 -04:00
de30f241a8 Refactor function call dot notation; Add better analysis of function calls and property access 2024-08-11 21:37:44 -04:00
c0254e8a94 Refactor to use type checking 2024-08-11 19:18:13 -04:00
3a2dd28efb Improve error layout 2024-08-11 18:01:35 -04:00
f5836b66dc Clean up 2024-08-11 16:57:52 -04:00
9338d73621 Add to_string function; Get fizzbuzz example working 2024-08-11 15:12:19 -04:00
28c65b0715 Clean up control flow code in the VM; Remove returns from if and if/else_if statements 2024-08-11 15:03:26 -04:00
0c73f80947 Implment control flow lexing and parsing 2024-08-11 14:35:33 -04:00
37e3e1116d Add while loops 2024-08-10 05:23:43 -04:00
1687fd7fe3 Clean up; Add an analyzer test 2024-08-10 04:45:30 -04:00
9ea203f419 Use context and replace old variable map 2024-08-09 21:12:36 -04:00
82fbf796f3 Implement postfix parsing 2024-08-09 18:14:46 -04:00
60f8aab805 Refactor pratt parser 2024-08-09 14:01:01 -04:00
ed82f3c64f Lex, parse and run maps and blocks 2024-08-09 11:41:23 -04:00
f389f7e422 Implement equality operation 2024-08-09 07:15:09 -04:00
24a2642f17 Add modulo support 2024-08-09 07:02:55 -04:00
2cf580d111 Add division 2024-08-09 06:46:24 -04:00
929468338d Add map parsing 2024-08-09 06:09:59 -04:00
55a8661618 Begin adding maps 2024-08-09 05:18:39 -04:00
d0dba35285 Add && and || operators 2024-08-09 04:56:24 -04:00
8c8fde94ce Refactor the abstract syntax tree 2024-08-09 04:23:02 -04:00
b9081f8653 Add comparison statement to replace four separate statements 2024-08-09 03:00:48 -04:00
83018ec5ec Improve error reports 2024-08-09 01:43:58 -04:00
c1b71ffccc Refactor errors and clean up read_line 2024-08-09 00:49:17 -04:00
9766777a47 Expand lexing of complex floats 2024-08-09 00:31:38 -04:00
60bd8f5352 Implement subtraction and multiplication 2024-08-08 23:28:47 -04:00
cccbe7a325 Write docs 2024-08-08 21:59:09 -04:00
77134e5292 Begin adding fancy errors 2024-08-08 21:47:49 -04:00
4805a53269 Begin expanding errors 2024-08-08 20:58:56 -04:00
a52e78150e Add lexing and parsing for I/O built-in functions; Refactor built-in function parsing 2024-08-08 13:49:40 -04:00
e4ea402dfa Move built-in functions to a separate module 2024-08-07 19:44:01 -04:00
1fe26e0296 Remove generic position from nodes and replace with Spans 2024-08-07 19:03:50 -04:00
35eca1f7b4 Clean up 2024-08-07 18:46:40 -04:00
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
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
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
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