factor/native/cons.c

29 lines
387 B
C
Raw Normal View History

2004-07-16 02:26:21 -04:00
#include "factor.h"
CELL cons(CELL car, CELL cdr)
2004-07-16 02:26:21 -04:00
{
F_CONS* cons = allot(sizeof(F_CONS));
2004-07-16 02:26:21 -04:00
cons->car = car;
cons->cdr = cdr;
return tag_cons(cons);
2004-07-16 02:26:21 -04:00
}
void primitive_cons(void)
{
CELL car, cdr;
maybe_garbage_collection();
cdr = dpop();
car = dpop();
dpush(cons(car,cdr));
2004-07-16 02:26:21 -04:00
}
void primitive_car(void)
{
drepl(car(dpeek()));
2004-07-16 02:26:21 -04:00
}
void primitive_cdr(void)
{
drepl(cdr(dpeek()));
2004-07-16 02:26:21 -04:00
}