moving to TeleMega v3.0 by default
[fw/altos] / src / lisp / ao_lisp_make_const.c
index f23d34db976e9b67d7708b01b5a42c8d2f356947..f3ea6be065151f723f7ef1bf6aa090033e5eb0b1 100644 (file)
@@ -133,7 +133,7 @@ ao_has_macro(ao_poly p);
 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;
@@ -289,6 +289,8 @@ main(int argc, char **argv)
                }
        }
 
+       ao_lisp_frame_init();
+
        /* Boolean values #f and #t */
        ao_lisp_bool_get(0);
        ao_lisp_bool_get(1);
@@ -298,13 +300,13 @@ main(int argc, char **argv)
                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' */
@@ -326,10 +328,11 @@ main(int argc, char **argv)
        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);