Ludovic 'Archivist' Lagouardette 01d88a6558 | il y a 6 mois | |
---|---|---|
.idea | il y a 6 mois | |
test | il y a 6 mois | |
.gitignore | il y a 6 mois | |
CMakeLists.txt | il y a 6 mois | |
LICENSE | il y a 6 mois | |
README.md | il y a 6 mois | |
bench.c | il y a 6 mois | |
ink.h | il y a 6 mois | |
lib.c | il y a 6 mois | |
main.c | il y a 6 mois |
ink
ink
is a minimalistic interpreted programming language, tentatively implemented exclusively in C98. It features
coroutines and can currently only manipulate integers. Part of the code may not be compliant with C98 and I will try to
fix that in time.
It is fully self-contained and doesn't rely on a working standard library beyond the following:
malloc
realloc
free
putchar
To make the library not use the standard library, build it with NOSTDLIB
defined as a preprocessor directive.
All of these functions need to work for ink
to work. It is easy to add new functions to the interpreter. In the
future, I will add a garbage collector to handle cleaning dynamically allocated resources.
It is possible to segregate unsafe allocations (allocations that should be hidden from the interpreter) by setting the
inner_
versions of the library functions to different allocation functions.
ink_lex
)int
ink_compile
)ink_parse
)ink_parse
)