46 Commits

Author SHA1 Message Date
3316a67794 README: improve DMA add mode explanation 2023-08-24 19:40:11 +00:00
61ca304384 README: add notes on DMA1 2023-08-24 19:35:47 +00:00
23c0dfa9da README: update S-record paragraph 2023-08-24 19:29:30 +00:00
a8572a7fb8 README: describe more syntax 2023-08-24 12:16:40 -07:00
6647d6ddda release.sh: release helper script 2023-08-24 09:47:35 +00:00
c9a478f7df main: add support for C source code output 2023-08-24 09:39:26 +00:00
ad7e128bb4 README: update DMA "add mode" documentation 2023-08-24 09:02:00 +00:00
0dbb339ca1 parser: change default dma add mode to 2 2023-08-24 09:01:45 +00:00
c13b1b2466 parser: DMA memory src/dst arguments update CTn
This means that they are more appropriately named MCn rather than Mn.
2023-08-24 08:06:28 +00:00
9e880d6039 README: add DMA add mode note 2023-08-24 07:20:35 +00:00
14c0cb2760 README: add DMA counter syntax note 2023-08-24 05:46:40 +00:00
34f9859a6c lexer_iterator: delete dead code 2023-08-24 05:11:51 +00:00
2d7a7491fa README: minor typos 2023-08-24 04:54:34 +00:00
6bea0cbf59 README: clarify testing status 2023-08-24 04:34:58 +00:00
2fe41d22dc Makefile: TARGET 2023-08-23 21:07:24 -07:00
cf9c8405d0 README: improve 2023-08-24 04:05:02 +00:00
107eb18cd4 parser: allow immediate values that end with colon
This is funky syntax, but it doesn't hurt the accuracy of a parser.

Some people might prefer this to stylize references to labels.
2023-08-24 03:31:35 +00:00
7c9ceed58a README: initial 2023-08-23 20:04:49 -07:00
b6e9d5ae86 Makefile: add static build 2023-08-23 20:04:30 -07:00
dd205b5e3e stmt_string: add missing strings 2023-08-23 19:55:18 -07:00
c12374f5fd lexer: add support for line continuations 2023-08-23 19:47:55 -07:00
c2c59495b3 lexer: add support for binary number literals 2023-08-23 19:34:09 -07:00
118942521e test: add initial test makefile
This also adds support for "#" characters prior to immediates.

nop may also now appear in an op_t. The parser no longer generates nop_t--this
is instead now represented as an op_t with a zero-length ops vector.
2023-08-23 19:21:43 -07:00
f51ec95713 grammar: update
This moves the expression grammar from parser.cpp to grammar.txt.
2023-08-23 19:17:10 -07:00
2fe2f0a1a7 test: include samples 2023-08-23 23:19:55 +00:00
0df0b66a6e main: add file output 2023-08-23 22:56:54 +00:00
37fe5d5f81 parser: add error hint for x = 1
I've accidentally attempted this multiple times myself during testing.
2023-08-23 20:41:23 +00:00
7f69f6b2e1 ast: improve error messages 2023-08-23 20:23:09 +00:00
d4e6c1c717 ast: add emitter and resolver 2023-08-21 10:30:42 +00:00
d8b8bc7850 stmt: add instruction masks and codes
The parser now checks for conflicts in op control words.
2023-08-21 05:15:00 +00:00
05664bb132 parser: add identifiers 2023-08-20 17:42:57 +00:00
cd0c9c7c8c parser: add assign and label 2023-08-20 08:45:16 +00:00
867ee171a5 parser: add jump 2023-08-20 06:02:18 +00:00
b97abc776c parser: add dma and mvi parsers 2023-08-20 05:54:53 +00:00
22625c7c90 ast: add printers for all instructions 2023-08-19 19:40:20 -07:00
e520a0de19 parser: initial op parsing 2023-08-20 00:59:41 +00:00
663b1139c9 stmt: add constructor boilerplate 2023-08-18 22:20:15 -07:00
d05767d280 grammar.txt: initial 2023-08-19 04:14:21 +00:00
e48bd182dc keyword: add more keywords
This also concedes that a lexer that returns std::vector is probably
the simplest API for the parser, but I will still continue to consider
alternatives.
2023-08-17 08:14:07 +00:00
c59a221c54 add notes 2023-08-16 23:03:07 -07:00
cc7345ec33 lexer: loop if the current character does not produce a token 2023-08-16 19:52:02 +00:00
b6d4ae5e8e parser: initial expression parser 2023-08-15 20:18:35 -07:00
e2f587437d expr: add more expression structures 2023-08-15 23:01:35 +00:00
97d35bfa4f visitor/expr: initial 2023-08-15 18:56:13 +00:00
082ebc20e5 lexer: add header
This also calls the lexer from main.
2023-08-14 11:38:52 -07:00
29428c7a92 initial 2023-08-14 16:52:56 +00:00