Add more C-side accum helpers
This commit is contained in:
parent
874ffe9007
commit
b655859822
|
@ -1053,9 +1053,11 @@ struct accum {
|
|||
.list = FL_NIL, .tail = FL_NIL \
|
||||
}
|
||||
|
||||
void accum_init(struct accum *accum);
|
||||
void accum_elt(struct accum *accum, value_t elt);
|
||||
void accum_pair(struct accum *accum, value_t a, value_t d);
|
||||
void accum_name_value(struct accum *accum, const char *name, value_t value);
|
||||
void accum_name_value1(struct accum *accum, const char *name, value_t value);
|
||||
|
||||
struct sv_accum {
|
||||
char **vec;
|
||||
|
|
9
c/util.c
9
c/util.c
|
@ -21,6 +21,8 @@ void *reallocarray(void *ptr, size_t nmemb, size_t size)
|
|||
|
||||
//
|
||||
|
||||
void accum_init(struct accum *accum) { accum->list = accum->tail = FL_NIL; }
|
||||
|
||||
void accum_elt(struct accum *accum, value_t elt)
|
||||
{
|
||||
value_t newtail;
|
||||
|
@ -41,7 +43,12 @@ void accum_pair(struct accum *accum, value_t a, value_t d)
|
|||
|
||||
void accum_name_value(struct accum *accum, const char *name, value_t value)
|
||||
{
|
||||
accum_pair(accum, string_from_cstr(name), value);
|
||||
accum_pair(accum, symbol(name), value);
|
||||
}
|
||||
|
||||
void accum_name_value1(struct accum *accum, const char *name, value_t value)
|
||||
{
|
||||
accum_pair(accum, symbol(name), fl_cons(value, FL_NIL));
|
||||
}
|
||||
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue