Ludovic 'Archivist' Lagouardette df8b2a7f05 | 6 ay önce | |
---|---|---|
test | 6 ay önce | |
.gitignore | 6 ay önce | |
CMakeLists.txt | 6 ay önce | |
LICENSE | 6 ay önce | |
README.md | 6 ay önce | |
bench.c | 6 ay önce | |
ink.h | 6 ay önce | |
lib.c | 6 ay önce | |
main.c | 6 ay önce |
ink
ink
is a minimalistic interpreted programming language, tentatively implemented exclusively in C89. It features
coroutines and can currently only manipulate integers. Part of the code may not be compliant with C89 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. I added 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
)