about summary refs log tree commit diff stats
path: root/subx/ex3.subx
Commit message (Collapse)AuthorAgeFilesLines
* 4512 - divide labels into two categoriesKartik Agaram2018-08-121-4/+4
| | | | | | | | | Targets you can jump to and ones you can call are conceptually disjoint sets. I'm highlighting these in Vim, but it's a pretty complex pattern. Arguably errors shouldn't be highlighted. Only warnings that are easy to be accidentally deployed.
* 4467Kartik Agaram2018-08-031-12/+12
|
* 4454Kartik Agaram2018-07-301-2/+2
|
* 4449Kartik Agaram2018-07-281-3/+3
|
* 4446Kartik Agaram2018-07-271-7/+7
|
* 4445 - support labelsKartik Agaram2018-07-271-5/+4
|
* 4431 - operate exclusively in hexKartik Agaram2018-07-261-3/+3
| | | | | | | | | Was confusing having numbers without an explicit base sometimes be hex and sometimes not, based on their metadata. By convention I don't bother with the '0x' for instructions, or for single-digit numbers that are equal to their decimal representation. But I could and it would still work.
* 4424Kartik Agaram2018-07-261-12/+12
| | | | Clean up format of example programs.
* 4414 - subx: syntax checkingKartik Agaram2018-07-251-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a large patch, and there's a few things wrong with it: a) Helpers are incredibly messy. I want to use has_metadata in layer 24, but can't since it also does error checking. There must be a better basis set of primitives for managing metadata. b) Layer 22 introduces operands for checking, but programs with operands don't actually run until layer 24. So I can't write non-error scenarios in layer 22. That seems ugly. But if I try to introduce layer 24 first there's nothing left to check after it. I *could* play tricks with ordering layers vs transforms. Mu does that a bit, but it becomes hard to mess with, so I'm trying to avoid that. My current plan is for layers within an "abstraction level" to be run in order. Higher layers will necessarily need to come before lower ones. But hopefully this level of hierarchy will help manage the chaos. c) The check for whether an instruction is all hex bytes makes me nervous. I do want to check that an instruction that's just: cd tells the programmer that an operand is missing. The check I currently have is likely not perfectly correct. I *could* put layer 25 in its own commit. But I guess I'm not doing that now. We have a new example program: hello world!
* 4396Kartik Agaram2018-07-241-1/+4
| | | | | | Fix ex4 binary, which has been corrupted in the repo since commit 4356. In this time it hasn't changed further. The correct version added here is also the file that should have been committed then.
* 4392Kartik Agaram2018-07-241-0/+4
|
* 4350Kartik Agaram2018-07-151-0/+1
| | | | | | | Reorganize layers to introduce the translation workflow right at the start. We also avoid duplicating parsing code. Programs are always parsed into the `program` data structure.
* 4325Kartik Agaram2018-07-071-2/+7
|
* 4324 - new example: add first ten numbersKartik Agaram2018-07-071-0/+23
Result has to be small enough to fit in AL so exit() can return it.