summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_make_const.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-10 11:30:55 -0800
committerKeith Packard <keithp@keithp.com>2017-02-20 11:16:50 -0800
commitc7d7cdc2318a97534c4c1f9c6fd2b51644be729d (patch)
tree6db3879511a9ab393d5835eb9b81ef2eaedad9c9 /src/lisp/ao_lisp_make_const.c
parent417161dbb36323b5a6572859dedad02ca92fc65c (diff)
altos/lisp: add progn, while, read and eval
Progn as a builtin will help with tail-recursion. while provides for loops until tail-recursion works :-) read and eval are kinda useful. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_make_const.c')
-rw-r--r--src/lisp/ao_lisp_make_const.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lisp/ao_lisp_make_const.c b/src/lisp/ao_lisp_make_const.c
index 6f852f9d..bb4afbfb 100644
--- a/src/lisp/ao_lisp_make_const.c
+++ b/src/lisp/ao_lisp_make_const.c
@@ -33,6 +33,8 @@ struct builtin_func {
};
struct builtin_func funcs[] = {
+ "eval", AO_LISP_FUNC_LAMBDA, builtin_eval,
+ "read", AO_LISP_FUNC_LAMBDA, builtin_read,
"lambda", AO_LISP_FUNC_NLAMBDA, builtin_lambda,
"lexpr", AO_LISP_FUNC_NLAMBDA, builtin_lexpr,
"nlambda", AO_LISP_FUNC_NLAMBDA, builtin_nlambda,
@@ -45,6 +47,8 @@ struct builtin_func funcs[] = {
"set", AO_LISP_FUNC_LAMBDA, builtin_set,
"setq", AO_LISP_FUNC_MACRO, builtin_setq,
"cond", AO_LISP_FUNC_NLAMBDA, builtin_cond,
+ "progn", AO_LISP_FUNC_NLAMBDA, builtin_progn,
+ "while", AO_LISP_FUNC_NLAMBDA, builtin_while,
"print", AO_LISP_FUNC_LEXPR, builtin_print,
"patom", AO_LISP_FUNC_LEXPR, builtin_patom,
"+", AO_LISP_FUNC_LEXPR, builtin_plus,