ao_poly
ao_macro_test_get(ao_poly atom)
{
- ao_poly *ref = ao_lisp_atom_ref(ao_lisp_frame_global, atom);
+ ao_poly *ref = ao_lisp_atom_ref(atom);
if (ref)
return *ref;
return AO_LISP_NIL;
}
}
+ ao_lisp_frame_init();
+
/* Boolean values #f and #t */
ao_lisp_bool_get(0);
ao_lisp_bool_get(1);
if (funcs[f].func != prev_func)
b = ao_lisp_make_builtin(funcs[f].func, funcs[f].args);
a = ao_lisp_atom_intern(funcs[f].name);
- ao_lisp_atom_set(ao_lisp_atom_poly(a),
+ ao_lisp_atom_def(ao_lisp_atom_poly(a),
ao_lisp_builtin_poly(b));
}
/* end of file value */
a = ao_lisp_atom_intern("eof");
- ao_lisp_atom_set(ao_lisp_atom_poly(a),
+ ao_lisp_atom_def(ao_lisp_atom_poly(a),
ao_lisp_atom_poly(a));
/* 'else' */
ao_lisp_collect(AO_LISP_COLLECT_FULL);
for (f = 0; f < ao_lisp_frame_global->num; f++) {
- val = ao_has_macro(ao_lisp_frame_global->vals[f].val);
+ struct ao_lisp_frame_vals *vals = ao_lisp_poly_frame_vals(ao_lisp_frame_global->vals);
+ val = ao_has_macro(vals->vals[f].val);
if (val != AO_LISP_NIL) {
printf("error: function %s contains unresolved macro: ",
- ao_lisp_poly_atom(ao_lisp_frame_global->vals[f].atom)->name);
+ ao_lisp_poly_atom(vals->vals[f].atom)->name);
ao_lisp_poly_write(val);
printf("\n");
exit(1);