diff options
| author | Mistivia <i@mistivia.com> | 2025-06-20 20:47:27 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-06-20 20:47:27 +0800 |
| commit | bb59a50ac59b4412ea77e9e25e276b25109808c2 (patch) | |
| tree | fded72c3295c2039de53a16ce8b96a281d0fa44f /src/interp.h | |
| parent | e88146d1f14577c68de8117964c222c754757a84 (diff) | |
macro
Diffstat (limited to 'src/interp.h')
| -rw-r--r-- | src/interp.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/interp.h b/src/interp.h index 1eaa920..b7b3025 100644 --- a/src/interp.h +++ b/src/interp.h @@ -60,6 +60,7 @@ void Interp_add_userfunc(Interp *self, const char *name, LispUserFunc fn); #define PUSH_REG(_x) { interp->reg = CONS((_x), interp->reg); } #define POP_REG() { interp->reg = CDR(interp->reg); } +SExpRef lisp_macroexpand1(Interp *interp, SExpRef macro, SExpRef args); SExpRef lisp_reverse(Interp *interp, SExpRef lst); void lisp_defun(Interp *interp, const char *name, SExpRef val); void lisp_defvar(Interp *interp, const char *name, SExpRef val); @@ -95,6 +96,7 @@ SExpRef new_env(Interp *ctx); SExpRef new_binding(Interp *ctx, SExpRef name, SExpRef val); SExpRef new_userfunc(Interp *interp, LispUserFunc val); SExpRef new_lambda(Interp *interp, SExpRef param, SExpRef body, SExpRef env); +SExpRef new_macro(Interp *interp, SExpRef param, SExpRef body); SExpRef new_list1(Interp *ctx, SExpRef e1); SExpRef new_list2(Interp *ctx, SExpRef e1, SExpRef e2); SExpRef new_list3(Interp *ctx, SExpRef e1, SExpRef e2, SExpRef e3); |
