factor/native/cons.c

27 lines
348 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
{
2004-08-04 22:43:58 -04:00
CONS* cons = allot(sizeof(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 cdr = dpop();
CELL 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
}