From fcdf8d416a686600243b36fb25fccd306e7f8bcc Mon Sep 17 00:00:00 2001 From: Simon Forman Date: Sat, 18 Mar 2023 11:50:18 -0700 Subject: [PATCH] pop() --- implementations/uvm-ncc/joy.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/implementations/uvm-ncc/joy.c b/implementations/uvm-ncc/joy.c index c9aa909..4cf4bb4 100644 --- a/implementations/uvm-ncc/joy.c +++ b/implementations/uvm-ncc/joy.c @@ -571,13 +571,15 @@ joy_eval(char *symbol, u32 stack, u32 expression) { MATCH("clear") return (u64)expression; MATCH("swaack") { stack = swaack(stack); } + else MATCH("pop") { stack = pop(stack); } + //else MATCH("") {} CHECK_ERROR //print_str(symbol);print_endl(); return (u64)stack << 32 | expression; } -u64 +u32 swaack(u32 stack) { u32 list = pop_list(stack); @@ -586,6 +588,17 @@ swaack(u32 stack) } +u32 +pop(u32 stack) +{ + if (!stack) { + error = NOT_ENOUGH_VALUES_ON_STACK; + return 0; + } + return tail(stack); +} + + u32 joy(u32 stack, u32 expression) { @@ -635,7 +648,7 @@ main() print_endl(); */ - u32 expression = text_to_expression("1 2 3 [4 5 6] swaack"); + u32 expression = text_to_expression("1 2 3 [4 5 6] swaack pop 23"); //u32 expression = text_to_expression("1 2 3 clear 4 5 6"); //u32 expression = text_to_expression(" 1[2[true 3][aa[aa bb] aa bb cc]bob]false[]bob 3[4] ga[]ry"); print_joy_list(expression);