This repository has been archived on 2025-11-10 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
b7d232720a98b9578563d3e379beaa11dc5f237b
Added support for shorts, changed semantics around the memory allocation operations and removed CALL_STACK and JUMP_STACK.
Aryadev's Assembly Language (AAL)
A compiler for Aryadev's Assembly Language, an assembly-like programming language, which targets the AVM.
How to build
Requires GNU make and a compliant C++17 compiler. Code base has
been tested against g++ and clang, but given how the project has
been written without use of GNU'isms (that I'm aware of) it shouldn't
be an issue to compile using something like tcc or another compiler
(look at here to change the compiler).
To build everything simply run make. This will build:
- Assembler executable which assembles compliant assembly code to VM bytecode
- Assembly examples which provide some source code examples on common programs one may write. Use this to figure out how to write compliant AAL. Also a good test of both the VM and assembler.
You may also build each component individually through the corresponding recipe:
make asmmake examples
Lines of code
| Files | Lines | Words | Characters |
| src/lexer.hpp | 133 | 308 | 2899 |
| src/main.cpp | 161 | 460 | 4076 |
| src/base.hpp | 25 | 113 | 741 |
| src/lexer.cpp | 613 | 1647 | 17888 |
| src/base.cpp | 37 | 134 | 976 |
| src/preprocesser.cpp | 273 | 1013 | 9103 |
| src/preprocesser.hpp | 80 | 227 | 2068 |
| total | 1322 | 3902 | 37751 |
Description
Languages
C++
93.8%
Makefile
6.2%