Add unit value to interpreter.

This commit is contained in:
2018-06-02 15:50:42 -07:00
parent 3fcdd55395
commit 8207f1f450
3 changed files with 36 additions and 4 deletions

View File

@@ -2,8 +2,16 @@
#include "util.h"
#include "value.h"
void libab_interpreter_init(libab_interpreter* intr, libab* ab) {
libab_result libab_interpreter_init(libab_interpreter* intr, libab* ab) {
libab_result result;
libab_ref unit_data;
intr->ab = ab;
libab_ref_null(&unit_data);
result = libab_create_value_ref(&intr->value_unit, &unit_data, &ab->type_unit);
libab_ref_free(&unit_data);
return result;
}
struct interpreter_state {
@@ -844,4 +852,10 @@ libab_result libab_interpreter_run_function(libab_interpreter* intr,
return result;
}
void libab_interpreter_free(libab_interpreter* intr) {}
void libab_interpreter_unit_value(libab_interpreter* intr, libab_ref* into) {
libab_ref_copy(&intr->value_unit, into);
}
void libab_interpreter_free(libab_interpreter* intr) {
libab_ref_free(&intr->value_unit);
}