From 6a1b7c372d9fb0f06d983cd5ffff6307c9e2c6ab Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Mon, 25 Aug 2014 16:55:51 +0900 Subject: [PATCH] remove eval.c and load.c --- eval.c | 39 ---------------------- include/picrin.h | 3 -- init.c | 4 --- load.c | 87 ------------------------------------------------ vm.c | 10 ++++++ 5 files changed, 10 insertions(+), 133 deletions(-) delete mode 100644 eval.c delete mode 100644 load.c diff --git a/eval.c b/eval.c deleted file mode 100644 index 5a037c94..00000000 --- a/eval.c +++ /dev/null @@ -1,39 +0,0 @@ -/** - * See Copyright Notice in picrin.h - */ - -#include "picrin.h" -#include "picrin/macro.h" - -pic_value -pic_eval(pic_state *pic, pic_value program, struct pic_lib *lib) -{ - struct pic_proc *proc; - - proc = pic_compile(pic, program, lib); - - return pic_apply(pic, proc, pic_nil_value()); -} - -static pic_value -pic_eval_eval(pic_state *pic) -{ - pic_value program, spec; - struct pic_lib *lib; - - pic_get_args(pic, "oo", &program, &spec); - - lib = pic_find_library(pic, spec); - if (lib == NULL) { - pic_errorf(pic, "no library found: ~s", spec); - } - return pic_eval(pic, program, lib); -} - -void -pic_init_eval(pic_state *pic) -{ - pic_deflibrary (pic, "(scheme eval)") { - pic_defun(pic, "eval", pic_eval_eval); - } -} diff --git a/include/picrin.h b/include/picrin.h index a1893b6f..cbe379ce 100644 --- a/include/picrin.h +++ b/include/picrin.h @@ -160,9 +160,6 @@ pic_value pic_read_cstr(pic_state *, const char *); pic_list pic_parse_file(pic_state *, FILE *); /* #f for incomplete input */ pic_list pic_parse_cstr(pic_state *, const char *); -pic_value pic_load(pic_state *, const char *); -pic_value pic_load_cstr(pic_state *, const char *); - pic_value pic_apply(pic_state *, struct pic_proc *, pic_value); pic_value pic_apply0(pic_state *, struct pic_proc *); pic_value pic_apply1(pic_state *, struct pic_proc *, pic_value); diff --git a/init.c b/init.c index 33c14f55..715b6cc1 100644 --- a/init.c +++ b/init.c @@ -54,12 +54,10 @@ void pic_init_error(pic_state *); void pic_init_str(pic_state *); void pic_init_macro(pic_state *); void pic_init_var(pic_state *); -void pic_init_load(pic_state *); void pic_init_write(pic_state *); void pic_init_read(pic_state *); void pic_init_dict(pic_state *); void pic_init_record(pic_state *); -void pic_init_eval(pic_state *); void pic_init_lib(pic_state *); #define DONE pic_gc_arena_restore(pic, ai); @@ -103,12 +101,10 @@ pic_init_core(pic_state *pic) pic_init_str(pic); DONE; pic_init_macro(pic); DONE; pic_init_var(pic); DONE; - pic_init_load(pic); DONE; pic_init_write(pic); DONE; pic_init_read(pic); DONE; pic_init_dict(pic); DONE; pic_init_record(pic); DONE; - pic_init_eval(pic); DONE; pic_init_lib(pic); DONE; } } diff --git a/load.c b/load.c deleted file mode 100644 index 440b45e2..00000000 --- a/load.c +++ /dev/null @@ -1,87 +0,0 @@ -/** - * See Copyright Notice in picrin.h - */ - -#include "picrin.h" -#include "picrin/pair.h" - -pic_value -pic_load_cstr(pic_state *pic, const char *src) -{ - size_t ai; - pic_value v, exprs; - struct pic_proc *proc; - - exprs = pic_parse_cstr(pic, src); - if (pic_undef_p(exprs)) { - pic_errorf(pic, "load: read failure (%s)", pic_errmsg(pic)); - } - - pic_for_each (v, exprs) { - ai = pic_gc_arena_preserve(pic); - - proc = pic_compile(pic, v, pic->lib); - if (proc == NULL) { - pic_error(pic, "load: compilation failure"); - } - - pic_apply(pic, proc, pic_nil_value()); - - pic_gc_arena_restore(pic, ai); - } - - return pic_none_value(); -} - -pic_value -pic_load(pic_state *pic, const char *fn) -{ - FILE *file; - size_t ai; - pic_value v, exprs; - struct pic_proc *proc; - - file = fopen(fn, "r"); - if (file == NULL) { - pic_errorf(pic, "load: could not read file \"%s\"", fn); - } - - exprs = pic_parse_file(pic, file); - if (pic_undef_p(exprs)) { - pic_errorf(pic, "load: read failure (%s)", pic_errmsg(pic)); - } - - pic_for_each (v, exprs) { - ai = pic_gc_arena_preserve(pic); - - proc = pic_compile(pic, v, pic->lib); - if (proc == NULL) { - pic_error(pic, "load: compilation failure"); - } - - pic_apply(pic, proc, pic_nil_value()); - - pic_gc_arena_restore(pic, ai); - } - - return pic_none_value(); -} - -static pic_value -pic_load_load(pic_state *pic) -{ - pic_value envid; - char *fn; - - pic_get_args(pic, "z|o", &fn, &envid); - - return pic_load(pic, fn); -} - -void -pic_init_load(pic_state *pic) -{ - pic_deflibrary (pic, "(scheme load)") { - pic_defun(pic, "load", pic_load_load); - } -} diff --git a/vm.c b/vm.c index 99f12f82..757fe7a3 100644 --- a/vm.c +++ b/vm.c @@ -1055,3 +1055,13 @@ pic_apply_trampoline(pic_state *pic, struct pic_proc *proc, pic_value args) return pic_car(pic, args); } } + +pic_value +pic_eval(pic_state *pic, pic_value program, struct pic_lib *lib) +{ + struct pic_proc *proc; + + proc = pic_compile(pic, program, lib); + + return pic_apply(pic, proc, pic_nil_value()); +}