aboutsummaryrefslogtreecommitdiff
path: root/src/sexp.h
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-06-22 15:21:42 +0800
committerMistivia <i@mistivia.com>2025-06-22 15:22:04 +0800
commit9991238f133f2cb06ee366b2c92dbb32a126ae9d (patch)
treee07e89bebf7492b72480cfa6f2b122a7c979b6be /src/sexp.h
parent6371e6ff8f5f78a48492a6ebb52001c4851dde6c (diff)
optimize name lookup
Diffstat (limited to 'src/sexp.h')
-rw-r--r--src/sexp.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/sexp.h b/src/sexp.h
index dfd3ee6..8275dfd 100644
--- a/src/sexp.h
+++ b/src/sexp.h
@@ -27,6 +27,7 @@ typedef struct {
struct interp;
typedef struct interp Interp;
typedef SExpRef (*LispUserFunc)(Interp *interp, SExpRef args);
+typedef SExpRef (*LispPrimitive)(Interp *interp, SExpRef sexp, bool istail);
typedef struct {
SExpRef args;
@@ -63,6 +64,7 @@ typedef enum {
kPairSExp,
kFuncSExp,
kUserFuncSExp,
+ kPrimitiveSExp,
kEnvSExp,
kBindingSExp,
kMacroSExp,
@@ -86,6 +88,7 @@ struct sexp {
SExpPair pair;
SExpFunc func;
LispUserFunc userfunc;
+ LispPrimitive primitive;
SExpEnv env;
SExpBinding binding;
SExpMacro macro;