summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_eval.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-11-16 18:41:18 -0800
committerKeith Packard <keithp@keithp.com>2017-11-16 18:41:18 -0800
commit0ced351c8f4449f7086b04e42c822d649f040d1f (patch)
tree24b2c47e7655c2a212b7bab1e29b33dd63f416cf /src/lisp/ao_lisp_eval.c
parentb3b4731fcb89cb404433f37a7704a503567c43bd (diff)
altos/lisp: Add 'else' sematics to cond
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_eval.c')
-rw-r--r--src/lisp/ao_lisp_eval.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lisp/ao_lisp_eval.c b/src/lisp/ao_lisp_eval.c
index b6cb4fd8..57227e93 100644
--- a/src/lisp/ao_lisp_eval.c
+++ b/src/lisp/ao_lisp_eval.c
@@ -324,6 +324,8 @@ ao_lisp_eval_cond(void)
return 0;
}
ao_lisp_v = ao_lisp_poly_cons(ao_lisp_v)->car;
+ if (ao_lisp_v == _ao_lisp_atom_else)
+ ao_lisp_v = _ao_lisp_bool_true;
ao_lisp_stack->state = eval_cond_test;
if (!ao_lisp_stack_push())
return 0;
@@ -492,6 +494,9 @@ const char *ao_lisp_state_names[] = {
"cond",
"cond_test",
"progn",
+ "while",
+ "while_test",
+ "macro",
};
/*