Peter McGoron b053379db2 | ||
---|---|---|
.gitignore | ||
LICENSE.md | ||
Makefile | ||
README.md | ||
creole.c | ||
creole.h | ||
greatest.h | ||
test_creole.c |
README.md
Creole is a bytecode designed for simple implementations.
Bytecode Format
Each creole line consists of pseudo-UTF-8 characters. The first byte is an unsigned number between 0 and 127 (the high bit is clear). Each suceeding pseudo-UTF-8 character is encoded as follows:
110xxxxx 10xxxxxx
1110xxxx 10xxxxxx 10xxxxxx
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
11111110 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
The first four bytes determine the type:
0
: Value is a register.1
: Value is immediate.
All other values are reserved. Overlong values are allowed, and for some argument values they are necessary. All lines are terminated by a byte of all zeros.