1
0
Commit Graph

669 Commits

Author SHA1 Message Date
78840cf3e7 Bring back chunk errors 2024-11-06 13:50:49 -05:00
c0b998c0d8 Add optimizer 2024-11-06 13:09:29 -05:00
e2df823566 Clean up value methods 2024-11-06 03:54:58 -05:00
f08c7c6f1f Refine values to be either abstract or concrete 2024-11-06 03:36:46 -05:00
a16f7795de Continue addind type evaluation 2024-11-06 00:57:54 -05:00
314913dbf5 Begin adding type evaluation to the parser 2024-11-05 23:20:58 -05:00
9294b8f7ed Use macro to simplify operation code 2024-11-05 22:28:10 -05:00
ea46bfe5da Simplify the parser by removing a value 2024-11-05 22:10:13 -05:00
9650183c73 Replace some "if let" statements with "matches!" macro for better formatting 2024-11-05 22:07:54 -05:00
3330939128 Add docs 2024-11-05 19:38:26 -05:00
b0af1609f0 Improve chunk disassembly code 2024-11-05 17:35:54 -05:00
80b6380255 Clean up 2024-11-05 16:33:56 -05:00
5ff5568e95 Clean up 2024-11-05 16:25:55 -05:00
cfb4fa66b5 Fix scopes 2024-11-05 16:07:51 -05:00
8c72e921dc Rework how scopes work to support excluding sibling scopes 2024-11-05 12:44:16 -05:00
0dcfcd5375 Clean up 2024-11-04 21:32:00 -05:00
a2fa5afcd4 Clean up 2024-11-04 21:30:23 -05:00
c77e1c89a9 Update dependencies and allow compiling to wasm 2024-11-04 21:29:20 -05:00
34dca01d85 Modicy native functions to have a full type specification 2024-11-04 19:16:19 -05:00
0e7aae79f9 Change identifiers to be constant values 2024-11-04 18:07:58 -05:00
a2e7a4e73e Begin removing chunk errors; Use constants for identifiers 2024-11-04 15:38:58 -05:00
a9e675cb4f Clean up native functions 2024-11-04 09:34:26 -05:00
60535e20d6 Deduplication of constants in the chunk; Clean up 2024-11-04 08:08:56 -05:00
e85297bcbb Extend macro use in native functions 2024-11-03 01:30:41 -05:00
1947d66be5 Overhaul implicit returns and add lots of new native functions 2024-11-02 21:24:41 -04:00
ae6d3d7a82 Add new implicit return for end of file 2024-11-01 09:55:15 -04:00
7e4f6654a4 Add move instruction to fix assignment to conditionals 2024-11-01 02:51:18 -04:00
32ff52d9b3 Change binary argument handling to fix expression chaining 2024-10-31 21:40:42 -04:00
febd7bb054 Fix while loop jumps; Pass tests 2024-10-31 20:33:46 -04:00
604962c535 Begin refactoring jump instructions 2024-10-30 14:48:30 -04:00
1f9adfab2f Fix test 2024-10-30 10:30:56 -04:00
10abd91c85 Add failing control flow test with new panic function 2024-10-30 09:50:45 -04:00
bd23853657 Add native function errors 2024-10-30 09:32:46 -04:00
382d43ef77 Add NativeFunction macro and implement read_line 2024-10-30 09:11:28 -04:00
4d6412006a Add lots of new native functions 2024-10-30 08:02:22 -04:00
d7be203bfc Fix write and write_line 2024-10-30 05:31:46 -04:00
c264aaeb13 Add the to_string, write and write_line natives 2024-10-30 05:16:34 -04:00
af4e43fc9f Add native calls and the panic native 2024-10-30 03:08:25 -04:00
caf1c22af0 Clean up 2024-10-30 00:16:10 -04:00
e304195661 Change return to use last_assigned_value; Add scopes tests 2024-10-29 23:11:55 -04:00
004cf73959 Pass tests 2024-10-24 22:37:18 -04:00
c0f74f1e09 Tweak control flow jumping and compile-time optimizations 2024-10-20 22:18:58 -04:00
648bbdbc4d Refactor parsing for better jumping and returns 2024-10-20 18:51:04 -04:00
1da61f0873 Begin reworking jump instructions 2024-10-20 10:20:09 -04:00
8db37bcdfd Add LoadSelf instruction to enable recursion 2024-10-20 02:30:22 -04:00
6caae6c952 Add chunk names 2024-10-20 00:46:59 -04:00
f15cf84c4d Refactor to fix bugs with loops; Add close instructions while calling functions 2024-10-20 00:06:22 -04:00
13b4cfffcc Add function declarations to the parser 2024-10-19 19:13:19 -04:00
9d5c9d9fd0 Implement functions calls 2024-10-19 17:24:22 -04:00
65e513488f Clean up unused code 2024-10-19 13:52:23 -04:00
1c8e8b35b9 Remove old, unused code from the parser 2024-10-19 13:40:46 -04:00
3f8b554a86 Refactor parser and chunk to have fewer errors and less retrospection 2024-10-19 12:05:20 -04:00
8c79157fa7 Simplify and clean up 2024-10-19 03:06:14 -04:00
6bcc5b1555 Add function test 2024-10-19 01:58:30 -04:00
b7153df9be Pass tests 2024-10-19 01:04:53 -04:00
bfade78a0d Consume VM and chunk when running the VM 2024-10-18 23:34:48 -04:00
86e055a562 Clean up 2024-10-18 22:30:20 -04:00
19f2d19134 Clean up 2024-10-18 21:34:47 -04:00
95e5b3062d Fix lexing bug 2024-10-18 19:31:46 -04:00
44659ec34a Extend CLI to cover more formatting options; Extend formatting 2024-10-13 16:46:45 -04:00
0c758c9768 Clean up 2024-10-13 13:08:12 -04:00
12d34d6354 Add a new parser method to handle errors 2024-10-13 13:01:58 -04:00
3609fddaea Expand formatter 2024-10-13 12:04:32 -04:00
5d62d897f4 Ads no-run command to the CLI 2024-10-13 08:04:32 -04:00
565d3c54f1 Add format option to the CLI 2024-10-13 07:56:11 -04:00
02ee7d126c Clean up 2024-10-13 07:45:16 -04:00
c7bba88875 Create formatter 2024-10-13 07:14:12 -04:00
5eb901f468 Add a VM method; Refactor and clean up 2024-10-13 04:21:07 -04:00
055f0a4100 Continue working on function calls 2024-10-13 02:47:12 -04:00
d5fc68e466 Refactor chunk disassembly output 2024-10-13 02:33:58 -04:00
743679371d Fix function bug 2024-10-12 20:34:13 -04:00
2864bee057 Add types to functions and improve calls 2024-10-12 20:19:21 -04:00
2527cc2de7 Clean up 2024-10-12 10:57:22 -04:00
ea0be43199 Begin adding function calls 2024-10-12 10:55:34 -04:00
5bbda1a24e Disallow comparison chaining 2024-10-12 08:16:06 -04:00
f1034534ed Avoid emitting duplicate return instructions; Clean up 2024-10-12 07:12:44 -04:00
02877d06d3 Reduce use of TokenKind in parser to only error cases 2024-10-12 06:27:19 -04:00
30b2801a38 Add item type to list value; Clean up 2024-10-12 06:17:16 -04:00
9c612317dc Refactor values to use register pointers for complex values 2024-10-12 04:50:30 -04:00
6e1ef77192 Refactor to use index references to avoid cloning values 2024-10-12 03:06:44 -04:00
c1e372d7cf Improve disassembler output; Fix return positions 2024-10-09 19:59:06 -04:00
61d633392c Improve disassembler output 2024-10-09 17:34:11 -04:00
b6c3b1e5ba Refactor 2024-10-09 12:16:46 -04:00
259721f6cb Continue implemnting functions; Begin adding types 2024-10-09 06:15:06 -04:00
bdc34cb10e Begin adding functions to the language 2024-10-08 22:56:01 -04:00
dddbf77fac Fix bug in the VM 2024-10-05 21:30:48 -04:00
35f73d60f0 Add tests for parser errors 2024-10-05 05:57:28 -04:00
437a6bf164 Add math-assignment operators 2024-10-05 04:33:38 -04:00
d857f42434 Pass all tests 2024-10-05 02:07:26 -04:00
9d0aa13e8a Refactor VM, chunk and parser to pass tests 2024-10-05 00:11:03 -04:00
9b1dc6c55c Rewrite tests for consistency 2024-10-04 22:36:33 -04:00
5015cf4cc4 Refactor how return instruction works; Begin passing tests 2024-10-04 22:33:47 -04:00
5411a1db27 Move and replace lots of tests; Refactor parser 2024-10-04 22:21:17 -04:00
ba904fdcd8 Clean up disassembler output 2024-10-01 20:27:28 -04:00
9d1996c9ec Simplify parsing comparison expressions 2024-10-01 20:07:57 -04:00
88684f49b6 Small refactor to jump position 2024-09-27 13:16:41 -04:00
d0d80cf407 Use test for single registers in conditional expressions 2024-09-25 09:55:10 -04:00
47d6ea417d Improve logs; Clean up 2024-09-25 01:27:10 -04:00
daca836db1 Refine LoadList instruction; Improve logs; Refactor 2024-09-24 22:58:14 -04:00
60df8b4d64 Remove identiifer cache and extend some tests 2024-09-24 20:32:52 -04:00
95e22aa97f Pass tests 2024-09-24 17:49:30 -04:00
7afde989f9 Fix bugs in binary parsing and running 2024-09-24 16:49:17 -04:00
85241c04b9 Fix lists 2024-09-24 13:51:04 -04:00
c1eccf049f Add list test 2024-09-24 12:03:12 -04:00
855782c370 Pass tests 2024-09-24 11:40:12 -04:00
a6da34a79c Fix control flow 2024-09-24 10:16:19 -04:00
3df42f6a47 Refine equality implementation 2024-09-24 08:29:33 -04:00
1d03876b89 Write tests 2024-09-24 01:30:21 -04:00
5441938725 Add better parser error 2024-09-24 00:24:09 -04:00
c31991cc24 Fix and pass tests 2024-09-23 23:38:49 -04:00
9fe3e440ac Add and pass tests 2024-09-23 19:16:15 -04:00
182ef66f23 Refactor register incrementing/decrementing 2024-09-23 11:15:49 -04:00
d68c789ea8 Add test for equality chain 2024-09-23 08:57:49 -04:00
1d0bafa4a3 Refine binary parsing 2024-09-23 06:42:41 -04:00
2c485cf046 Implement logical and/or operators 2024-09-23 04:01:36 -04:00
c5c2fe95ae Implement unary operators and divide binary parsing 2024-09-23 01:45:52 -04:00
23f733d8b2 Extend parsing 2024-09-23 00:55:39 -04:00
57edf48e36 Extend parsing 2024-09-22 18:17:21 -04:00
573e5ae470 Change VM's final value to last modified register 2024-09-22 12:57:58 -04:00
31bb7eaffc Pass tests 2024-09-19 18:07:11 -04:00
d4a8a65096 Pass tests 2024-09-19 13:54:28 -04:00
dee09d3583 Add bytcode to dissassembly 2024-09-19 11:53:41 -04:00
be77d64c39 Pass all but one test 2024-09-19 11:41:18 -04:00
03113fdf5e Clean up 2024-09-18 23:02:28 -04:00
bf4f319302 Add and pass tests 2024-09-18 22:00:24 -04:00
a1dd7e3bb9 Add if/else test 2024-09-18 20:08:02 -04:00
5b3232c723 Refactor and clean up; Pass tests 2024-09-18 20:02:12 -04:00
413cb70731 Begin implementing control flow with if/else expressions 2024-09-18 16:43:34 -04:00
915340fbdb Add LoadBoolean; Refactor; Improve disassembly output 2024-09-18 13:42:32 -04:00
85b95a56aa Add mutable variables 2024-09-18 11:27:41 -04:00
2cb03297c5 Add test 2024-09-18 08:33:29 -04:00
56f1222cfc Fix block test 2024-09-18 08:29:00 -04:00
89573e81b9 Fix bugs in binary parsing 2024-09-18 08:24:57 -04:00
fa4c2d48a3 Implement better closing for blocks 2024-09-18 07:58:31 -04:00
0a16c5e0ca Fix binary expressions with variables 2024-09-18 01:21:40 -04:00
2f8c46f0a5 Implement closing for lists 2024-09-17 23:06:58 -04:00
37dc2e05c5 Clean up 2024-09-17 21:10:44 -04:00
f02c3d1fb5 Add lists 2024-09-17 19:35:33 -04:00
6ca96bc1dc Add &&, || and ! to the language; Add tests 2024-09-17 17:51:39 -04:00
00555785e3 Refactor pratt parsing 2024-09-17 17:23:37 -04:00
6c76006ad9 Improve test 2024-09-17 13:39:12 -04:00
0d55bb7244 Fix binary expression parsing 2024-09-17 13:24:45 -04:00
fd4ffeec7c Pass tests 2024-09-17 12:08:40 -04:00
71a4f863e3 Add test 2024-09-15 10:20:43 -04:00
9cb6873618 Add test 2024-09-15 06:33:56 -04:00
b66710e3eb Improve precedence parsing 2024-09-15 06:26:31 -04:00
4653a3f506 Improve on proof of concept 2024-09-15 04:25:24 -04:00
97bde437e8 Pass tests and fix instruction byte encoding bug 2024-09-15 02:03:54 -04:00
d1bdabed56 Continue register proof of concept 2024-09-15 01:24:04 -04:00
ba80774e7b Refactor and debug 2024-09-14 21:05:03 -04:00