summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-11-17 22:14:19 -0800
committerKeith Packard <keithp@keithp.com>2017-11-17 22:14:19 -0800
commite1acf5eb12aceda7aa838df031c1da1129d0fa5d (patch)
treee0fe6c04b9f3f654e246616a78d1278e5d6c3cf5 /src/lisp/ao_lisp.h
parenta4e18a13029cc7b16b2ed9da84d6e606bc725ac3 (diff)
altos/lisp: Add apply
And all of the library routines that use it, map, string-map and friends. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp.h')
-rw-r--r--src/lisp/ao_lisp.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lisp/ao_lisp.h b/src/lisp/ao_lisp.h
index 77a94cf1..a445dddd 100644
--- a/src/lisp/ao_lisp.h
+++ b/src/lisp/ao_lisp.h
@@ -54,14 +54,14 @@ extern uint8_t ao_lisp_const[AO_LISP_POOL_CONST] __attribute__((aligned(4)));
#define ao_lisp_pool ao_lisp_const
#define AO_LISP_POOL AO_LISP_POOL_CONST
-#define _atom(n) ao_lisp_atom_poly(ao_lisp_atom_intern(#n))
+#define _atom(n) ao_lisp_atom_poly(ao_lisp_atom_intern(n))
#define _bool(v) ao_lisp_bool_poly(ao_lisp_bool_get(v))
#define _ao_lisp_bool_true _bool(1)
#define _ao_lisp_bool_false _bool(0)
-#define _ao_lisp_atom_eof _atom(eof)
-#define _ao_lisp_atom_else _atom(else)
+#define _ao_lisp_atom_eof _atom("eof")
+#define _ao_lisp_atom_else _atom("else")
#define AO_LISP_BUILTIN_ATOMS
#include "ao_lisp_builtin.h"
@@ -184,6 +184,7 @@ enum eval_state {
eval_val, /* Value computed */
eval_formal, /* Formal computed */
eval_exec, /* Start a lambda evaluation */
+ eval_apply, /* Execute apply */
eval_cond, /* Start next cond clause */
eval_cond_test, /* Check cond condition */
eval_progn, /* Start next progn entry */