aboutsummaryrefslogtreecommitdiff
path: root/src/sexp.h
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-07-14 19:52:37 +0800
committerMistivia <i@mistivia.com>2025-07-14 19:55:14 +0800
commitdab2284cd5aae14bb166c90105a8e7b1bd290dcd (patch)
treed5009f5434c8f4f78d812c0068425b6d0bced236 /src/sexp.h
parentaec1c5667b130d40c86403037bb16463f77db7bb (diff)
add vector
Diffstat (limited to 'src/sexp.h')
-rw-r--r--src/sexp.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/sexp.h b/src/sexp.h
index 4aec76d..d8d2dc9 100644
--- a/src/sexp.h
+++ b/src/sexp.h
@@ -78,10 +78,13 @@ typedef enum {
VECTOR_DEF(SExpRef);
+typedef SExp *SExpPtr;
+VECTOR_DEF(SExpPtr);
+
typedef struct {
- SExpRef type;
+ const char *type;
void (*free)(void *self);
- void (*gcmark)(SExpRefVector *gcstack, void *self);
+ void (*gcmark)(Interp *interp, SExpPtrVector *gcstack, void *self);
} LispUserdataMeta;
struct sexp {
@@ -94,7 +97,7 @@ struct sexp {
char character;
const char *str;
struct {
- const void *userdata;
+ void *userdata;
LispUserdataMeta *userdata_meta;
};
SExpPair pair;
@@ -109,15 +112,12 @@ struct sexp {
};
};
-typedef SExp *SExpPtr;
-
void SExp_show(SExp self, FILE* fp);
void SExpRef_show(SExpRef self, FILE* fp);
void SExpPtr_show(SExpPtr self, FILE* fp);
VECTOR_DEF(SExp);
-VECTOR_DEF(SExpPtr);
#endif