Login
7 branches 0 tags
Ben (X13/Void) Implemented [min] and [max] using reduce cf56d15 4 years ago 314 Commits
nujel / lib / allocation / roots.h
#pragma once
#include "../nujel.h"

lClosure *lRootsClosurePush(lClosure *c);
lVal     *lRootsValPush    (lVal *c);
lTree    *lRootsTreePush   (lTree *c);
lString  *lRootsStringPush (lString *s);
lSymbol  *lRootsSymbolPush (lSymbol *s);

void      lRootsMark();

extern int rootSP;
extern void (*rootsMarkerChain)();

static inline void lRootsRet(const int i){ rootSP = i; }
static inline int lRootsGet(){ return rootSP; }

#define RVP(c) lRootsValPush(c)
#define RCP(c) lRootsClosurePush(c)
#define RSP(c) lRootsStringPush(c)
#define RSYMP(c) lRootsSymbolPush(c)
#define RTP(c) lRootsTreePush(c)