|
|
1 年之前 | |
|---|---|---|
| test | 1 年之前 | |
| .gitignore | 1 年之前 | |
| CMakeLists.txt | 1 年之前 | |
| LICENSE | 1 年之前 | |
| README.md | 1 年之前 | |
| bench.c | 1 年之前 | |
| ink.h | 1 年之前 | |
| lib.c | 1 年之前 | |
| main.c | 1 年之前 | |
inkink 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:
mallocreallocfreeputcharTo 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)intink_compile)ink_parse)ink_parse)