X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Flisp%2Fao_lisp_poly.c;h=d14f41513c1320837c70813b0c043adf3688996a;hb=a1d013ab8cc508d4e17ae8876bc5465d1a2dfc1e;hp=160734b10117f9feecca3b3a9b4bf555ecaff82e;hpb=b3b4731fcb89cb404433f37a7704a503567c43bd;p=fw%2Faltos diff --git a/src/lisp/ao_lisp_poly.c b/src/lisp/ao_lisp_poly.c index 160734b1..d14f4151 100644 --- a/src/lisp/ao_lisp_poly.c +++ b/src/lisp/ao_lisp_poly.c @@ -15,46 +15,58 @@ #include "ao_lisp.h" struct ao_lisp_funcs { - void (*print)(ao_poly); - void (*patom)(ao_poly); + void (*write)(ao_poly); + void (*display)(ao_poly); }; static const struct ao_lisp_funcs ao_lisp_funcs[AO_LISP_NUM_TYPE] = { [AO_LISP_CONS] = { - .print = ao_lisp_cons_print, - .patom = ao_lisp_cons_patom, + .write = ao_lisp_cons_write, + .display = ao_lisp_cons_display, }, [AO_LISP_STRING] = { - .print = ao_lisp_string_print, - .patom = ao_lisp_string_patom, + .write = ao_lisp_string_write, + .display = ao_lisp_string_display, }, [AO_LISP_INT] = { - .print = ao_lisp_int_print, - .patom = ao_lisp_int_print, + .write = ao_lisp_int_write, + .display = ao_lisp_int_write, }, [AO_LISP_ATOM] = { - .print = ao_lisp_atom_print, - .patom = ao_lisp_atom_print, + .write = ao_lisp_atom_write, + .display = ao_lisp_atom_write, }, [AO_LISP_BUILTIN] = { - .print = ao_lisp_builtin_print, - .patom = ao_lisp_builtin_print, + .write = ao_lisp_builtin_write, + .display = ao_lisp_builtin_write, }, [AO_LISP_FRAME] = { - .print = ao_lisp_frame_print, - .patom = ao_lisp_frame_print, + .write = ao_lisp_frame_write, + .display = ao_lisp_frame_write, + }, + [AO_LISP_FRAME_VALS] = { + .write = NULL, + .display = NULL, }, [AO_LISP_LAMBDA] = { - .print = ao_lisp_lambda_print, - .patom = ao_lisp_lambda_print, + .write = ao_lisp_lambda_write, + .display = ao_lisp_lambda_write, }, [AO_LISP_STACK] = { - .print = ao_lisp_stack_print, - .patom = ao_lisp_stack_print, + .write = ao_lisp_stack_write, + .display = ao_lisp_stack_write, }, [AO_LISP_BOOL] = { - .print = ao_lisp_bool_print, - .patom = ao_lisp_bool_print, + .write = ao_lisp_bool_write, + .display = ao_lisp_bool_write, + }, + [AO_LISP_BIGINT] = { + .write = ao_lisp_bigint_write, + .display = ao_lisp_bigint_write, + }, + [AO_LISP_FLOAT] = { + .write = ao_lisp_float_write, + .display = ao_lisp_float_write, }, }; @@ -69,21 +81,21 @@ funcs(ao_poly p) } void -ao_lisp_poly_print(ao_poly p) +ao_lisp_poly_write(ao_poly p) { const struct ao_lisp_funcs *f = funcs(p); - if (f && f->print) - f->print(p); + if (f && f->write) + f->write(p); } void -ao_lisp_poly_patom(ao_poly p) +ao_lisp_poly_display(ao_poly p) { const struct ao_lisp_funcs *f = funcs(p); - if (f && f->patom) - f->patom(p); + if (f && f->display) + f->display(p); } void *