Dialect of Python with explicit variable declaration and block scoping, with a lightweight and easy-to-embed bytecode compiler and interpreter.
Go to file
2020-12-28 08:17:54 +09:00
.gitignore through chapter 19 of Crafting Interpreters 2020-12-26 09:32:21 +09:00
chunk.c Basic garbage collection; had to fix some stuff for stack preallocation 2020-12-27 16:07:27 +09:00
chunk.h that's a lot of stuff and pretty much finishes the book; need to do optimizations 2020-12-27 22:40:35 +09:00
compiler.c remove superfluous debug prints 2020-12-27 22:48:22 +09:00
compiler.h not exactly how modules work in Python, but, uh, good enough for us for now 2020-12-27 18:55:52 +09:00
debug.c that's a lot of stuff and pretty much finishes the book; need to do optimizations 2020-12-27 22:40:35 +09:00
debug.h through chapter 19 of Crafting Interpreters 2020-12-26 09:32:21 +09:00
kuroko.c that's a lot of stuff and pretty much finishes the book; need to do optimizations 2020-12-27 22:40:35 +09:00
kuroko.h through chapter 19 of Crafting Interpreters 2020-12-26 09:32:21 +09:00
LICENSE meta stuff 2020-12-26 16:59:43 +09:00
Makefile through chapter 19 of Crafting Interpreters 2020-12-26 09:32:21 +09:00
memory.c that's a lot of stuff and pretty much finishes the book; need to do optimizations 2020-12-27 22:40:35 +09:00
memory.h Basic garbage collection; had to fix some stuff for stack preallocation 2020-12-27 16:07:27 +09:00
object.c not exactly how modules work in Python, but, uh, good enough for us for now 2020-12-27 18:55:52 +09:00
object.h methods/initializers; haven't done invoke, want to add modules first then come back 2020-12-27 17:53:46 +09:00
README.md meta stuff 2020-12-26 16:59:43 +09:00
scanner.c not exactly how modules work in Python, but, uh, good enough for us for now 2020-12-27 18:55:52 +09:00
scanner.h not exactly how modules work in Python, but, uh, good enough for us for now 2020-12-27 18:55:52 +09:00
system.krk that's a lot of stuff and pretty much finishes the book; need to do optimizations 2020-12-27 22:40:35 +09:00
table.c hash tables (which should work with any object as keys?) and string interning from ch 20 2020-12-26 14:33:34 +09:00
table.h classes and instances (from ch 27) 2020-12-27 16:45:34 +09:00
test.krk we can extract properties from types other than instances in the vm, like this dynamic length method 2020-12-28 08:17:54 +09:00
value.c Finish up chapter 22, local variables; fix up indentation-based scoping 2020-12-26 18:39:29 +09:00
value.h hash tables (which should work with any object as keys?) and string interning from ch 20 2020-12-26 14:33:34 +09:00
vm.c we can extract properties from types other than instances in the vm, like this dynamic length method 2020-12-28 08:17:54 +09:00
vm.h that's a lot of stuff and pretty much finishes the book; need to do optimizations 2020-12-27 22:40:35 +09:00

Kuroko - A bytecode-compiled scripting language

This project is my take on following Robert Nystrom's Crafting Interpreters.

Instead of implementing Lox, I am aiming for a language with a syntax reminiscent of Python - one with significant whitespace and generally the same keywords.

At the moment, the intent for this project is to add a proper scripting language to Bim, to which both configuration scripts and syntax highlighting will be ported.

Kuroko, as its name should imply, will also be made available in ToaruOS as a general user language, and some utilities may end up being written in it.