#define AO_SCHEME_IS_CONST(a) (ao_scheme_const <= ((uint8_t *) (a)) && ((uint8_t *) (a)) < ao_scheme_const + AO_SCHEME_POOL_CONST)
#define AO_SCHEME_IS_POOL(a) (ao_scheme_pool <= ((uint8_t *) (a)) && ((uint8_t *) (a)) < ao_scheme_pool + AO_SCHEME_POOL)
-#define AO_SCHEME_IS_INT(p) (ao_scheme_poly_base_type(p) == AO_SCHEME_INT)
-#define AO_SCHEME_IS_CONS(p) (ao_scheme_poly_base_type(p) == AO_SCHEME_CONS)
void *
ao_scheme_ref(ao_poly poly);
if (!ao_scheme_check_argc(_ao_scheme_atom_led, cons, 1, 1))
return AO_SCHEME_NIL;
v = ao_scheme_arg(cons, 0);
- if (v != AO_SCHEME_NIL && AO_SCHEME_IS_CONS(v))
+ if (ao_scheme_is_pair(v))
return _ao_scheme_bool_true;
return _ao_scheme_bool_false;
}
for (;;) {
if (v == AO_SCHEME_NIL)
return _ao_scheme_bool_true;
- if (!AO_SCHEME_IS_CONS(v))
+ if (!ao_scheme_is_cons(v))
return _ao_scheme_bool_false;
v = ao_scheme_poly_cons(v)->cdr;
}
ao_scheme_poly_mark(cons->car, 1);
if (!cdr)
break;
- if (!AO_SCHEME_IS_CONS(cdr)) {
+ if (!ao_scheme_is_cons(cdr)) {
ao_scheme_poly_mark(cdr, 0);
break;
}
cdr = cons->cdr;
if (!cdr)
break;
- if (!AO_SCHEME_IS_CONS(cdr)) {
+ if (!ao_scheme_is_cons(cdr)) {
(void) ao_scheme_poly_move(&cons->cdr, 0);
break;
}
ao_poly cdr = cons->cdr;
if (cdr == AO_SCHEME_NIL)
return NULL;
- if (!AO_SCHEME_IS_CONS(cdr)) {
+ if (!ao_scheme_is_cons(cdr)) {
(void) ao_scheme_error(AO_SCHEME_INVALID, "improper cdr %v", cdr);
return NULL;
}
tail->cdr = ao_scheme_cons_poly(new);
tail = new;
cdr = cons->cdr;
- if (!AO_SCHEME_IS_CONS(cdr)) {
+ if (!ao_scheme_is_cons(cdr)) {
tail->cdr = cdr;
break;
}
written++;
cdr = cons->cdr;
- if (!AO_SCHEME_IS_CONS(cdr)) {
+ if (!ao_scheme_is_cons(cdr)) {
printf(" . ");
ao_scheme_poly_write(cdr, write);
break;
ao_scheme_stack->state = eval_val;
} else {
ao_scheme_v = ao_scheme_poly_cons(ao_scheme_stack->sexprs)->car;
- if (!ao_scheme_v || !AO_SCHEME_IS_CONS(ao_scheme_v)) {
+ if (!ao_scheme_is_pair(ao_scheme_v)) {
ao_scheme_error(AO_SCHEME_INVALID, "invalid cond clause");
return 0;
}
if (ao_scheme_v == AO_SCHEME_NIL)
ao_scheme_abort();
- if (AO_SCHEME_IS_CONS(ao_scheme_v)) {
+ if (ao_scheme_is_cons(ao_scheme_v)) {
*ao_scheme_poly_cons(ao_scheme_stack->sexprs) = *ao_scheme_poly_cons(ao_scheme_v);
ao_scheme_v = ao_scheme_stack->sexprs;
DBGI("sexprs rewritten to: "); DBG_POLY(ao_scheme_v); DBG("\n");
list = cons->cdr;
p = AO_SCHEME_NIL;
- while (list != AO_SCHEME_NIL && AO_SCHEME_IS_CONS(list)) {
+ while (ao_scheme_is_pair(list)) {
cons = ao_scheme_poly_cons(list);
m = ao_has_macro(cons->car);
if (m) {