86 Commits

Author SHA1 Message Date
984e29ec84 Add some pseudocode to examples 2023-12-14 17:18:28 +01:00
54505d4d4d Add support for Nix Flake 2023-12-14 12:32:19 +01:00
2737e0a34e Improve code 2021-11-19 17:07:18 +01:00
2c56582460 Refactor code 2021-11-18 22:33:13 +01:00
c656b8ca4e Override default show implementation for VM ADT 2021-11-18 13:02:26 +01:00
18ddfa611d Add support for local labels 2021-11-15 14:05:18 +01:00
5ad4114405 Wrap emitters with ExceptT monad 2021-11-15 13:01:55 +01:00
4735f56372 Create Fibbonacci sequence example and test 2021-11-15 09:40:20 +01:00
e7c413e9eb Add support for 'ldl' and 'stl' instructions 2021-11-14 21:54:46 +01:00
3bb880f045 Rename 'ld' instruction to 'lda' 2021-11-14 11:08:25 +01:00
6c50259228 Disable stack modification by branching (j*) instructions 2021-11-14 11:06:56 +01:00
434d5a16ff Add support for 'roll' and 'over' instructions 2021-11-12 17:40:13 +01:00
41438cc709 Enable 'in' instruction handler 2021-11-12 16:25:04 +01:00
e3bcebcece Update VM to work on State monad 2021-11-12 15:23:17 +01:00
bc4350205e Add more unit tests for Virtual Machine #4 2021-11-10 23:06:13 +01:00
f84e10a019 Add more unit tests for Virtual Machine #3 2021-11-10 22:58:09 +01:00
d32c2fa94a Add more unit tests for Virtual Machine #2 2021-11-10 22:10:31 +01:00
bae874a97d Add more unit tests for Virtual Machine 2021-11-10 20:22:03 +01:00
107e3fa865 Create some unit tests for Virtual Machine 2021-11-10 16:53:46 +01:00
c457d176b7 Enable empty stack error handling 2021-11-10 14:13:17 +01:00
00219b6316 Create Runner 2021-11-10 11:48:09 +01:00
8880fcae8a Update README.md with example formula calculation 2021-11-09 21:31:48 +01:00
ae2ff96cb7 Add support for clr instruction 2021-11-09 21:25:48 +01:00
71ec09c326 Add support for ld instruction | fix number of pops in halt instruction 2021-11-09 21:19:06 +01:00
174af9536f Create print-based VM debugger 2021-11-09 19:11:02 +01:00
6a2047aae1 Fix jumping 2021-11-09 19:05:15 +01:00
bfb231d483 Split VirtualMachine module 2021-11-09 18:25:15 +01:00
3faa4f4abf Improve call instruction interpreter 2021-11-09 16:32:02 +01:00
1573b055d2 Improve out instruction interpreter 2021-11-09 16:00:12 +01:00
24fd8fa26f Improve simple and complex instructions interpreters 2021-11-09 15:51:51 +01:00
5383609875 Implement Call and Ret instructions 2021-11-09 15:26:55 +01:00
f969793864 Reimplement Virtual Machine to handle PC by byte rather than command 2021-11-09 13:17:41 +01:00
bf5d24fc84 Implement DBG instruction 2021-11-08 22:00:54 +01:00
4fe325e6e8 Resolve compilation warnings 2021-11-08 21:56:48 +01:00
e2800fe69f Add support for IO in VirtualMachine 2021-11-08 21:39:55 +01:00
df1f8262dc Resolve compilation warnings 2021-11-08 16:56:15 +01:00
f9496adf8c Create compiler facade for Tokenizer, Parser and Emitter 2021-11-08 16:42:28 +01:00
e353caca8d Add some tests for emitters 2021-11-08 16:39:17 +01:00
022ec25129 Create emitter 2021-11-08 15:44:19 +01:00
077a28b637 Polish imports 2021-11-08 11:26:24 +01:00
66dad8ea00 Create unit test for Util module 2021-11-08 11:12:09 +01:00
42b2eb5e41 Resolve compilation warnings 2021-11-08 10:36:22 +01:00
919cddd814 Add unit tests for Assembler parsers 2021-11-08 09:35:47 +01:00
ce3af87741 Add unit tests for Assembler tokenizers 2021-11-05 15:43:10 +01:00
8208de8791 Split Assembler module to Tokenizer and Parser 2021-11-04 13:59:16 +01:00
e28410ceeb Enable parser error handler displays tokens instead of line numbers 2021-11-04 11:45:54 +01:00
a10e857ffe Improve error handling in general parser 2021-11-04 11:36:54 +01:00
324336a897 Enable parsing line by line 2021-11-04 11:12:24 +01:00
759f0b5c00 Wrap all parsers and enable parsing problem 2021-11-04 10:05:29 +01:00
cf66dbc928 Create line parser 2021-11-04 09:50:42 +01:00