2022-04-04 12:28:39 +02:00
|
|
|
# peon
|
|
|
|
|
2022-05-20 15:55:28 +02:00
|
|
|
Peon is a simple, functional, async-first programming language with a focus on correctness and speed
|
|
|
|
|
|
|
|
## Project structure
|
|
|
|
|
2022-05-20 16:01:34 +02:00
|
|
|
- `src/` -> Contains the entirety of peon's toolchain
|
|
|
|
- `src/memory` -> Contains peon's memory allocator and GC (TODO)
|
|
|
|
- `src/frontend` -> Contains the tokenizer, parser and compiler
|
|
|
|
- `src/frontend/meta` -> Contains shared error definitions, AST node and token
|
|
|
|
declarations as well as the bytecode used by the compiler
|
|
|
|
- `src/backend` -> Contains the peon VM and type system
|
|
|
|
- `src/util` -> Contains utilities such as the bytecode debugger and serializer as well
|
|
|
|
as procedures to handle multi-byte sequences
|
2022-05-20 16:03:19 +02:00
|
|
|
- `src/config.nim` -> Contains compile-time configuration variables
|
|
|
|
- `src/main.nim` -> Ties up the whole toolchain together by tokenizing,
|
|
|
|
parsing, compiling, debugging, (de-)serializing and executing peon code
|
2022-05-20 16:01:34 +02:00
|
|
|
|
|
|
|
|
|
|
|
## Disclaimer about the project's state
|
|
|
|
The project is still in its very early days: lots of stuff is not implemented, a work in progress or
|
|
|
|
otherwise outright broken. Feel free to report bugs!
|
|
|
|
|