aboutsummaryrefslogtreecommitdiff
path: root/src/primitives.h
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-06-21 10:45:36 +0800
committerMistivia <i@mistivia.com>2025-06-21 10:45:36 +0800
commit86742c415b34ae063bf8597d9228e9d37f0d7294 (patch)
tree297b2ae6a8b20bf74c9e54ec6628799c02425c0d /src/primitives.h
parent0afe446fa6e893448da949b1b6882c87b3b2701c (diff)
tail call optimazation
Diffstat (limited to 'src/primitives.h')
-rw-r--r--src/primitives.h36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/primitives.h b/src/primitives.h
index 7e6d559..5e22ba9 100644
--- a/src/primitives.h
+++ b/src/primitives.h
@@ -3,23 +3,23 @@
#include "interp.h"
-SExpRef primitive_if(Interp *interp, SExpRef sexp);
-SExpRef primitive_cond(Interp *interp, SExpRef sexp);
-SExpRef primitive_progn(Interp *interp, SExpRef sexp);
-SExpRef primitive_setq(Interp *interp, SExpRef sexp);
-SExpRef primitive_let(Interp *interp, SExpRef sexp);
-SExpRef primitive_while(Interp *interp, SExpRef sexp);
-SExpRef primitive_lambda(Interp *interp, SExpRef sexp);
-SExpRef primitive_defun(Interp *interp, SExpRef sexp);
-SExpRef primitive_defvar(Interp *interp, SExpRef sexp);
-SExpRef primitive_defmacro(Interp *interp, SExpRef sexp);
-SExpRef primitive_function(Interp *interp, SExpRef sexp);
-SExpRef primitive_macroexpand1(Interp *interp, SExpRef sexp);
-SExpRef primitive_funcall(Interp *interp, SExpRef sexp);
-SExpRef primitive_apply(Interp *interp, SExpRef sexp);
-SExpRef primitive_quote(Interp *interp, SExpRef sexp);
-SExpRef primitive_quasi(Interp *interp, SExpRef sexp);
-SExpRef primitive_and(Interp *interp, SExpRef sexp);
-SExpRef primitive_or(Interp *interp, SExpRef sexp);
+SExpRef primitive_if(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_cond(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_progn(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_setq(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_let(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_while(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_lambda(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_defun(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_defvar(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_defmacro(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_function(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_macroexpand1(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_funcall(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_apply(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_quote(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_quasi(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_and(Interp *interp, SExpRef sexp, bool istail);
+SExpRef primitive_or(Interp *interp, SExpRef sexp, bool istail);
#endif