Oakblue is a virtual machine and assembler for that virtual machine, as a learning project.
The program started off as an implementation of the LC3 abstract machine.
Architecture of assembler:
ASM file -> scanner -----> parser -----> analyzer -----> emitter ----------> BIN file tokens CST AST bytecode
Architecture of VM:
BIN file -> executor
To lint the project, use golangci-lint.
The project is laid out according to these guidelines: Golang Standards Project Layout