An ASM-inspired language that uses some familiar constructs to make building ASM easier.
It's basically ASM, but labels are given a function syntax. There also exists the concept of pointers, which are converted into address literals.
Declaring external functions is also supported, which makes it possible to verify the syntax of calls at compile time.
All in all, the compiler will be written in C++, and should in theory be quite fast, because in reality it is just a simple transpiler.
The compiler should output one master ASM file containing all include
s.
Lastly, all symbols will be namespaced, and prefixed with underscores.
If the expose
modifier is present, then a non-namespaced symbol will be generated
that points to the namespaced symbol. Naturally, these can/should not conflict.
All "statements" are:
- ASM calls
while
loops- Functions (can be nested! Hooray scopes)