X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=templates%2Fprogram.c;h=4ac6289f414a65030274c62f3dc5dc4db476ace6;hp=3410e1bd7b80365621ed37038cb7bfcd92a73992;hb=a96e96f3f783930707122f691cd6a08a90416a74;hpb=ad72a3204cb66766dcebb847b42512494199d15a diff --git a/templates/program.c b/templates/program.c index 3410e1b..4ac6289 100644 --- a/templates/program.c +++ b/templates/program.c @@ -52,7 +52,8 @@ enum Type BOOLEAN, CLOSURE, INTEGER, - STRING + STRING, + VOID }; struct Closure; @@ -79,6 +80,7 @@ struct Object const Object builtin$true = { BOOLEAN, (Instance)(bool){ true } }; const Object builtin$false = { BOOLEAN, (Instance)(bool){ false } }; +const Object builtin$nil = { VOID, { 0 } }; struct EnvironmentNode { @@ -137,6 +139,7 @@ void Environment_mark(Environment* self) case BOOLEAN: case INTEGER: case STRING: + case VOID: break; case CLOSURE: @@ -391,6 +394,10 @@ Object builtin$print$implementation(EnvironmentPool* environmentPool, Environmen printf("%s", output.instance.string); break; + case VOID: + printf("nil"); + break; + default: assert(false); }