implement missing pic_ref definition

This commit is contained in:
Yuichi Nishiwaki 2014-01-13 00:50:45 +09:00
parent 4a7a32829d
commit 3fb407329f
1 changed files with 16 additions and 0 deletions

View File

@ -1,4 +1,5 @@
#include <stdio.h> #include <stdio.h>
#include <assert.h>
#include "picrin.h" #include "picrin.h"
#include "picrin/pair.h" #include "picrin/pair.h"
@ -950,6 +951,21 @@ pic_define(pic_state *pic, const char *name, pic_value val)
pic_export(pic, pic_intern_cstr(pic, name)); pic_export(pic, pic_intern_cstr(pic, name));
} }
pic_value
pic_ref(pic_state *pic, const char *name)
{
struct xh_entry *e;
if (! (e = xh_get(pic->lib->senv->tbl, name))) {
pic_error(pic, "symbol not defined");
}
assert(e->val >= 0);
if (! (e = xh_get(pic->global_tbl, pic_symbol_name(pic, (pic_sym)e->val)))) {
pic_abort(pic, "logic flaw");
}
return pic->globals[e->val];
}
void void
print_code(pic_state *pic, struct pic_code c) print_code(pic_state *pic, struct pic_code c)
{ {