Ludovic 'Archivist' Lagouardette df8b2a7f05 | преди 6 месеца | |
---|---|---|
test | преди 6 месеца | |
.gitignore | преди 6 месеца | |
CMakeLists.txt | преди 6 месеца | |
LICENSE | преди 6 месеца | |
README.md | преди 6 месеца | |
bench.c | преди 6 месеца | |
ink.h | преди 6 месеца | |
lib.c | преди 6 месеца | |
main.c | преди 6 месеца |
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
)