From 6159165acdbdc3c9f6f5a0ae7b3dbbc8448060d5 Mon Sep 17 00:00:00 2001 From: Simon Forman Date: Sat, 4 Feb 2023 19:34:38 -0800 Subject: [PATCH] div and mod --- implementations/C/KEYWORDS.txt | 4 ++-- implementations/C/joy.c | 4 +++- implementations/C/joy.h | 4 ++-- implementations/C/keywords.c | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/implementations/C/KEYWORDS.txt b/implementations/C/KEYWORDS.txt index 07a8540..c9c6454 100644 --- a/implementations/C/KEYWORDS.txt +++ b/implementations/C/KEYWORDS.txt @@ -6,11 +6,11 @@ %} struct dict_entry; %% -"%", mod +"%", tdiv_r *, mul +, add -, sub -/, div_joyfunc +/, tdiv_q bool, truthy branch, branch clear, clear diff --git a/implementations/C/joy.c b/implementations/C/joy.c index 5737ae0..85d47ea 100644 --- a/implementations/C/joy.c +++ b/implementations/C/joy.c @@ -516,8 +516,8 @@ name(JoyListPtr stack, __attribute__((unused)) JoyListPtr expression) \ { \ mpz_t *a, *b; \ JoyList node; \ - a = pop_int(stack); \ b = pop_int(stack); \ + a = pop_int(stack); \ node = newIntNode(); \ mpz_ ## name(node->head->value.i, *a, *b); \ node->tail = *stack; \ @@ -527,6 +527,8 @@ name(JoyListPtr stack, __attribute__((unused)) JoyListPtr expression) \ BINARY_MATH_OP(add) BINARY_MATH_OP(sub) BINARY_MATH_OP(mul) +BINARY_MATH_OP(tdiv_q) +BINARY_MATH_OP(tdiv_r) /* diff --git a/implementations/C/joy.h b/implementations/C/joy.h index e989d91..f3264a4 100644 --- a/implementations/C/joy.h +++ b/implementations/C/joy.h @@ -60,11 +60,11 @@ void add(JoyListPtr stack, JoyListPtr expression); void branch(JoyListPtr stack, JoyListPtr expression); void clear(JoyListPtr stack, JoyListPtr expression); void cmp_joyfunc(JoyListPtr stack, JoyListPtr expression); -void div_joyfunc(JoyListPtr stack, JoyListPtr expression); void i_joyfunc(JoyListPtr stack, JoyListPtr expression); -void mod(JoyListPtr stack, JoyListPtr expression); void mul(JoyListPtr stack, JoyListPtr expression); void sub(JoyListPtr stack, JoyListPtr expression); +void tdiv_q(JoyListPtr stack, JoyListPtr expression); +void tdiv_r(JoyListPtr stack, JoyListPtr expression); void truthy(JoyListPtr stack, JoyListPtr expression); diff --git a/implementations/C/keywords.c b/implementations/C/keywords.c index 2d08955..9a4e0c8 100644 --- a/implementations/C/keywords.c +++ b/implementations/C/keywords.c @@ -107,11 +107,11 @@ in_word_set (register const char *str, register size_t len) {"branch", branch}, {""}, {""}, #line 9 "KEYWORDS.txt" - {"%", mod}, + {"%", tdiv_r}, #line 11 "KEYWORDS.txt" {"+", add}, #line 13 "KEYWORDS.txt" - {"/", div_joyfunc}, + {"/", tdiv_q}, {""}, {""}, {""}, #line 10 "KEYWORDS.txt" {"*", mul},