|
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 |
|
|
aa8b1215a8
|
Clean up
|
2024-09-14 15:06:13 -04:00 |
|
|
9418cd5b70
|
Add "styled" CLI option and debug logging for disassembler
|
2024-09-14 14:31:40 -04:00 |
|
|
8534f18c9a
|
Tweak the chunk disassembly
|
2024-09-14 13:59:11 -04:00 |
|
|
2ad3440097
|
Clean up
|
2024-09-13 02:30:09 -04:00 |
|
|
3b7987c218
|
Replace local variables with indexes to the register
|
2024-09-13 02:28:18 -04:00 |
|
|
a0439675b7
|
Fix bugs and improve disassembler
|
2024-09-13 01:10:07 -04:00 |
|
|
82a2b8f6b7
|
Fix byte lexing bug; Implement Move operation
|
2024-09-12 21:14:15 -04:00 |
|
|
5c54a5b9bd
|
Make chunk disassembly the prettiest thing ever
|
2024-09-12 19:25:20 -04:00 |
|
|
9144257524
|
Replace VM's "clone" method with "take" to avoid cloning values
|
2024-09-12 14:22:07 -04:00 |
|
|
caf59894b6
|
Fix and implement variable getting and setting
|
2024-09-12 14:16:26 -04:00 |
|
|
8b33df3d4a
|
Prettify the hell out of chunk disassembly
|
2024-09-12 13:03:24 -04:00 |
|
|
78c9ed97e2
|
Experiment with instruction optimization
|
2024-09-12 09:11:49 -04:00 |
|
|
6ff25a22ec
|
Fix lexing bug that I just created
|
2024-09-12 05:12:38 -04:00 |
|
|
d4d58e793b
|
Refactor and improve the VM, Parser, and Lexer
|
2024-09-12 05:08:55 -04:00 |
|
|
67e5de6664
|
Reimplement the Parser and VM with a register-based VM
|
2024-09-12 00:39:31 -04:00 |
|
|
7b055d79b5
|
Begin rewrite with register-based bytecode
|
2024-09-11 23:07:20 -04:00 |
|
|
974310ffab
|
Preffify logs
|
2024-09-11 04:33:53 -04:00 |
|
|
86f8e47b0c
|
Avoid cloning constant and move identifier stack to the chunk
|
2024-09-11 04:22:54 -04:00 |
|
|
e4204c1b0d
|
Get variable scopes working
|
2024-09-11 03:10:12 -04:00 |
|
|
8f58bf30a4
|
Make everything messy
|
2024-09-10 18:19:59 -04:00 |
|
|
c3790e90bf
|
Implement blocks with scopes
|
2024-09-10 10:44:15 -04:00 |
|
|
4ba3a47ae5
|
Add implicit returns and fix variable declaration and resolution
|
2024-09-10 09:26:05 -04:00 |
|
|
f936c30b4f
|
Go to great lengths to avoid cloning Values; Extend error reports
|
2024-09-10 03:42:25 -04:00 |
|
|
0ed2733991
|
Add quotes to string value display
|
2024-09-10 01:06:38 -04:00 |
|
|
8798efc0af
|
Add error reports and byte operations
|
2024-09-10 01:04:30 -04:00 |
|
|
8f20e53880
|
Add support for characters and bytes
|
2024-09-09 23:45:35 -04:00 |
|
|
fcfcb4a429
|
Restructure, clean up and add tests
|
2024-09-09 23:24:22 -04:00 |
|
|
85f5f44946
|
Pass all tests
|
2024-09-09 22:57:14 -04:00 |
|
|
5b8ec74d05
|
Prettify disassembly output
|
2024-09-09 20:55:00 -04:00 |
|
|
c406039c99
|
Replace global variables with locals
|
2024-09-09 19:23:49 -04:00 |
|
|
32347ec512
|
Make chunk debug print infallible
|
2024-09-07 18:48:01 -04:00 |
|
|
e9ec838b25
|
Refactor and clean up
|
2024-09-07 17:16:14 -04:00 |
|
|
b8957190e0
|
Add and pass tests
|
2024-09-07 13:51:05 -04:00 |
|
|
3ac15fe70b
|
Implement let assignment
|
2024-09-07 12:15:47 -04:00 |
|
|
03d44434e2
|
Refactor parsing
|
2024-09-07 06:38:12 -04:00 |
|
|
616f890028
|
Pass parser test
|
2024-09-07 04:37:38 -04:00 |
|
|
812d930488
|
Continue writing bytecode implementation
|
2024-09-07 04:34:03 -04:00 |
|
|
406edda573
|
Begin parser
|
2024-09-06 23:30:43 -04:00 |
|
|
3c2e3699ab
|
Add binary operations
|
2024-09-06 19:37:12 -04:00 |
|
|
1ecaac0819
|
Start new rewrite of Dust
|
2024-09-06 19:27:16 -04:00 |
|
|
5dcdfe83f9
|
Clean up
|
2024-09-05 13:17:52 -04:00 |
|
|
9349724bac
|
Fix doc tests; Clean up
|
2024-09-05 13:16:26 -04:00 |
|
|
c42fca496b
|
Track down tricky context bug
|
2024-09-05 13:10:38 -04:00 |
|
|
5c9a8dab31
|
Clean up
|
2024-09-05 11:36:55 -04:00 |
|
|
72a019cfe5
|
Clean up and refactor slightly
|
2024-09-05 11:32:31 -04:00 |
|
|
7b25b593ef
|
Expand errors
|
2024-09-03 08:29:31 -04:00 |
|
|
bd76622543
|
Refactor context method
|
2024-09-03 06:08:34 -04:00 |
|
|
d6ab891d7f
|
Refactor context so that parents are a Weak reference
|
2024-09-03 00:42:39 -04:00 |
|
|
0aebd81665
|
Fix context bug
|
2024-09-03 00:09:32 -04:00 |
|
|
0edb42836d
|
Fix context scope bug
|
2024-09-02 12:57:27 -04:00 |
|
|
3c2a70803e
|
Refactor error reports
|
2024-09-02 11:04:08 -04:00 |
|
|
4433c587f5
|
Clean up context
|
2024-09-02 05:53:09 -04:00 |
|
|
d32061ebba
|
Clean up project imports
|
2024-09-02 04:27:11 -04:00 |
|
|
d0feac667f
|
Remove old docs
|
2024-09-02 04:00:42 -04:00 |
|
|
2a0e4c9b78
|
Clean up context garbage collection
|
2024-09-02 03:58:53 -04:00 |
|
|
14aa7c242a
|
Ignore context in Debug format for AST
|
2024-09-02 03:51:19 -04:00 |
|
|
e643ebe114
|
Fix parsing bug
|
2024-08-31 07:24:45 -04:00 |
|
|
f2e5b8d499
|
Clean up; Fix tests
|
2024-08-30 19:58:07 -04:00 |
|
|
012728b00a
|
Try embedding contexts in the AST
|
2024-08-30 18:06:58 -04:00 |
|
|
d032334635
|
Clean up
|
2024-08-28 12:51:55 -04:00 |
|
|
5f186ade41
|
Add VM test
|
2024-08-28 12:18:27 -04:00 |
|
|
8043e24637
|
Use variable dereferencing to improve language
|
2024-08-28 12:15:14 -04:00 |
|
|
0c3e8d5edf
|
Clean up
|
2024-08-28 12:06:25 -04:00 |
|
|
b02e5244f2
|
Add defereference expressions
|
2024-08-28 11:31:47 -04:00 |
|
|
5f733ba1dd
|
Add Vm tests and refine how mutability and assignment works
|
2024-08-24 14:17:38 -04:00 |
|
|
561a290b16
|
Implement block scopes; Refactor async block execution
|
2024-08-24 10:13:16 -04:00 |
|
|
511cc10e98
|
Pass all tests
|
2024-08-23 17:27:11 -04:00 |
|
|
e45ac042b9
|
Pass some docs tests
|
2024-08-23 16:47:57 -04:00 |
|
|
ab53df56bc
|
Pass all unit tests
|
2024-08-23 16:33:38 -04:00 |
|
|
8b14d74eba
|
Replace "return_type" methods in AST with new type_evaluation
|
2024-08-23 13:47:22 -04:00 |
|
|
f510cce0ee
|
Pass analyzer test
|
2024-08-23 12:16:56 -04:00 |
|
|
6a488c2245
|
Improve constructors
|
2024-08-23 11:44:47 -04:00 |
|
|
de3c83a6f5
|
Pass analyzer tests
|
2024-08-23 07:36:10 -04:00 |
|
|
e84bb2ea70
|
Improve errors
|
2024-08-23 05:54:58 -04:00 |
|
|
0d0a2d2237
|
Add character literal tokens; Change strings to double quotes only
|
2024-08-23 05:24:48 -04:00 |
|
|
23782c37a3
|
Complete value overhaul
|
2024-08-23 03:04:11 -04:00 |
|
|
87bced9719
|
Begin changing value type
|
2024-08-23 01:12:20 -04:00 |
|
|
956def5ec6
|
Clean up
|
2024-08-20 19:44:22 -04:00 |
|
|
e1e40cf931
|
Pass analyzer tests
|
2024-08-20 19:20:38 -04:00 |
|
|
e22d0254f5
|
Pass analyzer test
|
2024-08-20 18:48:25 -04:00 |
|
|
08a9b265ec
|
Improve errors
|
2024-08-20 17:01:30 -04:00 |
|
|
80bf09d807
|
Clean up
|
2024-08-20 15:55:35 -04:00 |
|
|
2eff51815a
|
Get hello world working again
|
2024-08-20 15:43:50 -04:00 |
|
|
a6334070ae
|
Get fizzbuzz working again
|
2024-08-20 15:16:06 -04:00 |
|
|
f9480ddc24
|
Add loop and break
|
2024-08-20 14:45:43 -04:00 |
|
|
169c1a9e3f
|
Pass tests
|
2024-08-20 12:24:41 -04:00 |
|
|
4846b3f74d
|
Fix parsing bug that fixes garbage collection bug
|
2024-08-20 12:09:17 -04:00 |
|
|
2e7acbeb64
|
Add parent contexts and core library
|
2024-08-20 11:40:37 -04:00 |
|
|
83f856385b
|
Refine errors and error propagation
|
2024-08-20 11:07:13 -04:00 |
|
|
cf9a9837c8
|
Add a parser test; Pass VM test
|
2024-08-20 07:20:44 -04:00 |
|
|
8b5eb9977c
|
Clean up
|
2024-08-20 04:38:15 -04:00 |
|
|
c0ab5a84a2
|
Pass VM tests
|
2024-08-20 04:12:43 -04:00 |
|
|
d5c2ae92c9
|
Pass VM test
|
2024-08-20 03:28:13 -04:00 |
|
|
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 |
|