|
04a1c81a2a
|
Add parents to the VM; Improve the disassembler
|
2024-11-07 02:10:02 -05:00 |
|
|
f54d2d0d22
|
Clean up
|
2024-11-07 00:49:36 -05:00 |
|
|
ea88ffc451
|
Move the disassembler to its own module
|
2024-11-06 18:39:09 -05:00 |
|
|
a997665d1a
|
Write docs; Improve disassembly output
|
2024-11-06 17:59:16 -05:00 |
|
|
dc9b451b37
|
Clean up and add docs
|
2024-11-06 15:50:05 -05:00 |
|
|
e99a7b5e1e
|
Rename Parser to Compiler
|
2024-11-06 15:40:37 -05:00 |
|
|
74bb8a429a
|
Clean up
|
2024-11-06 15:14:12 -05:00 |
|
|
d587d87ed7
|
Refine chunk poisoning and optimize taking values from registers
|
2024-11-06 15:08:51 -05:00 |
|
|
87f597624a
|
Begin fixing control flow
|
2024-11-06 14:46:23 -05:00 |
|
|
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 |
|