Kartik Agaram
282681c729
5600
2019-08-31 23:42:45 -07:00
Kartik Agaram
f3ab82e943
5599 - sigils: support metadata in %reg and *reg
...
We already support metadata after *(...)
No plans to support metadata _inside_ *(...)
2019-08-31 23:00:11 -07:00
Kartik Agaram
518429b1cb
5598
2019-08-31 22:34:56 -07:00
Kartik Agaram
5008a4ec4e
5597
2019-08-31 22:34:26 -07:00
Kartik Agaram
bf02a19d02
5596
2019-08-31 22:18:24 -07:00
Kartik Agaram
3046e34da8
5595 - support ebp and esp in sigils
...
The x86 instruction set carves out exceptions for these registers.
2019-08-31 22:14:11 -07:00
Kartik Agaram
e97b446ac3
5594 - rename 'desugar' to 'sigils'
...
There's going to be multiple forms of syntax sugar going forward.
2019-08-31 20:43:41 -07:00
Kartik Agaram
a21fb73d04
5593
2019-08-30 21:26:03 -07:00
Kartik Agaram
333525360b
5592 - switch register names to lowercase
2019-08-26 11:59:21 -07:00
Kartik Agaram
22fb844ba4
5591
2019-08-26 11:54:29 -07:00
Kartik Agaram
e0d034b565
5590
2019-08-25 23:33:49 -07:00
Kartik Agaram
fc55af70a5
5589
2019-08-25 23:25:08 -07:00
Kartik Agaram
418ea7d3db
5588 - always include desugar in build
2019-08-25 22:15:26 -07:00
Kartik Agaram
8402365977
5587
...
No need for progress reports on ntranslate; it runs pretty fast.
2019-08-25 22:14:34 -07:00
Kartik Agaram
d8c2f71ce9
5586 - bugfix: no desugar inside string literals
2019-08-25 22:03:23 -07:00
Kartik Agaram
dac833572b
5585
2019-08-25 20:07:15 -07:00
Kartik Agaram
300f455491
5584
...
Forgot to switch the knob when fixing the merge conflict between commits
5512 and 1a7b15aa3d
.
2019-08-25 17:37:10 -07:00
Kartik Agaram
7c878eb0ea
5583
...
Clean up some missing error messages.
2019-08-25 16:29:10 -07:00
Kartik Agaram
6033844884
5582
2019-08-25 15:54:16 -07:00
Kartik Agaram
9ac3fde9ab
5581
2019-08-25 15:12:56 -07:00
Kartik Agaram
e3f1ce6735
Merge pull request #35 from akkartik/desugar
...
Desugaring pass
2019-08-25 15:11:33 -07:00
Kartik Agaram
57fdbeb2b6
.
2019-08-25 15:07:46 -07:00
Kartik Agaram
0d3b3ef04a
Merge branch 'master' into desugar
2019-08-25 15:04:26 -07:00
Kartik Agaram
749d455ac3
.
2019-08-25 14:56:20 -07:00
Kartik Agaram
0a288d46b9
desugar: more integration tests
2019-08-25 14:45:21 -07:00
Kartik Agaram
3cf0ec28d4
desugar: code-generation seems complete
2019-08-25 14:33:26 -07:00
Kartik Agaram
f40528078d
desugar: parsing seems complete
2019-08-25 00:59:52 -07:00
Kartik Agaram
1a7b15aa3d
skip building apps when running a single test
...
Environment variables allow me to have non-local effects inside scripts.
2019-08-25 00:58:20 -07:00
Kartik Agaram
380fc367b8
parsing *(reg-disp)
2019-08-25 00:32:24 -07:00
Kartik Agaram
d230393c92
parsing *(reg+reg)
...
Turns out there's an ambiguity even in this simple one-line language:
when you see 'base+' you don't know whether the next token is the index
or displacement. (Whereas a '-' would be unambiguous but is still not
handled.)
Fixing this ambiguity adds 15 instructions worth of complexity.
2019-08-25 00:27:42 -07:00
Kartik Agaram
be063736d0
parsing *(reg+disp)
2019-08-24 23:42:04 -07:00
Kartik Agaram
cf529da986
.
2019-08-24 13:28:20 -07:00
Kartik Agaram
4f8b2bd2fb
integration tests for desugaring indirect mode
...
They caught a logic error.
2019-08-24 13:06:34 -07:00
Kartik Agaram
9191049790
integration tests for desugaring direct mode
2019-08-24 13:06:10 -07:00
Kartik Agaram
ab412890e5
use the results of parsing in emit-indirect-mode
2019-08-24 11:45:48 -07:00
Kartik Agaram
23ee933e12
parsing *(reg)
2019-08-24 11:36:37 -07:00
Kartik Agaram
b60d8c920e
5523
2019-08-24 09:28:17 -07:00
Kartik Agaram
33de6b8031
build out all variants for skipping whitespace
...
skip {whitespace, non-whitespace} x {from stream, from slice}
2019-08-24 08:18:09 -07:00
Kartik Agaram
60d59aec85
.
...
This is pretty complex, but I may not need any more registers.
2019-08-23 15:33:13 -07:00
Kartik Agaram
e4ca252873
.
2019-08-23 15:04:47 -07:00
Kartik Agaram
88469e78ae
.
...
Some reorg as I realize I may have painted myself into a corner in this
function. I have no registers left for the actual parsing.
2019-08-23 14:23:25 -07:00
Kartik Agaram
4b296ceef9
parsing *reg
...
Isn't used yet, but baby steps.
2019-08-23 13:51:29 -07:00
Kartik Agaram
fee05edddd
another error message
2019-08-23 11:21:13 -07:00
Kartik Agaram
4949dda554
.
2019-08-23 11:07:26 -07:00
Kartik Agaram
ba5a2eff2c
lexing complex expressions inside '*(...)'
2019-08-23 01:27:36 -07:00
Kartik Agaram
ab87ccf62e
couple of helpers for parsing expressions in parens
2019-08-22 00:25:41 -07:00
Kartik Agaram
0bb09d2e14
5522 - example app: random number stream
...
Turns out Mu's kernel isn't populating /dev/random correctly.
2019-08-20 00:20:38 -07:00
Kartik Agaram
668700fd2c
5521
2019-08-19 23:45:04 -07:00
Kartik Agaram
f7fd97ce4e
5520 - move kernel.config to kernel repo
2019-08-18 22:34:49 -07:00
Kartik Agaram
5256486747
5519
2019-08-18 19:33:00 -07:00