Commit Graph

56 Commits

Author SHA1 Message Date
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
29303e5b5f Fix instruction parser 2 2021-11-04 09:46:10 +01:00
346edda6b9 Fix instruction parser 2021-11-04 09:31:04 +01:00
c5e17bce26 Create instruction parser 2021-11-04 00:01:18 +01:00
969f1cf517 Create param parser 2021-11-03 23:20:24 +01:00
bdc534df7c Create label def and ref parsers 2021-11-03 23:10:58 +01:00
b08e923368 Create sequence parser (pattern matcher) 2021-11-03 23:02:57 +01:00
372d895dba Create parsers for colon and ampersand tokens 2021-11-03 22:47:00 +01:00
6356e6c526 Create parser scaffolding 2021-11-03 22:45:48 +01:00
ce5267a13f Enable splitting emitted tokens by new lines 2021-11-03 21:11:17 +01:00
674c574fda Create new line tokenizer 2021-11-03 20:25:25 +01:00
4a8a0ec437 Create ampersand tokenizer 2021-11-03 19:58:53 +01:00
ce20e00704 Create identifier tokenizer 2021-11-03 19:37:19 +01:00
e0953a391b Create colon tokenizer 2021-11-03 19:12:08 +01:00
8ae464047e Create string tokenizer 2021-11-03 18:06:53 +01:00
ac030715ad Create char tokenizer 2021-11-03 13:20:34 +01:00
b085f53903 Create hex tokenizer 2021-11-03 12:58:45 +01:00
aa984281c0 Refactor decimal and comment tokenizers 2021-11-03 12:49:26 +01:00
4a5f6b5e64 Create comment tokenizer 2021-11-03 12:43:53 +01:00
7b3ee8a68b Create decimal tokenizer and sep tokenizer 2021-11-03 12:37:45 +01:00
aae14eb3f4 Create whitespace tokenizer and common tokenizer function 2021-11-03 11:30:49 +01:00
a73ab7fc89 Create Assembler module and implement some basic tokenizers 2021-11-03 11:10:24 +01:00
a5db26d307 Merge Interpreter and Parser to VirtualMachine module 2021-11-03 09:25:10 +01:00
85a27b7fb1 Merge Instruction to VirtualMachine module 2021-11-02 23:39:02 +01:00
c919e391b2 Implement some complex-class instructions 2021-11-02 23:28:03 +01:00
908229360d Fix invalid stack order 2021-11-02 22:59:36 +01:00
e7b6b0ab75 Implement simple-class instructions 2021-11-02 22:45:58 +01:00
2a8e9ca5cf Unify simple instruction actions 2021-11-02 22:25:45 +01:00
e263617a2c Create working PoC of interpreter 2021-11-02 20:55:53 +01:00
0b419650f0 Update README.md with list of assembler instructions 2021-11-02 18:16:47 +01:00
4693b19bf2 Export Command to separate module 2021-11-02 18:16:47 +01:00