Print ints.

This commit is contained in:
Simon Forman 2023-02-01 20:28:24 -08:00
parent 202747cfbb
commit b09055f299
2 changed files with 55 additions and 11 deletions

View File

@ -86,7 +86,7 @@ make_symbol_node(char *text, size_t size)
node->head.kind = joySymbol;
node->head.value.symbol = (char *)GC_malloc(size + 1);
strncat(node->head.value.symbol, text, size);
printf("%s\n", node->head.value.symbol);
/*printf("%s\n", node->head.value.symbol);*/
return node;
}
@ -166,6 +166,9 @@ void
print_node(struct JoyType j)
{
switch (j.kind) {
case joyInt:
gmp_printf("%Zd", j.value.i);
break;
case joySymbol:
printf("%s", j.value.symbol);
break;
@ -194,6 +197,7 @@ main(void)
{
mpz_t pi;
struct list_node* el;
char *text = (char *)TEXT;
mp_set_memory_functions(
&GC_malloc,
@ -204,17 +208,8 @@ main(void)
/*mpz_init_set_str(pi, "25d0c79fe247f31777d922627a74624", 16);*/
GC_register_finalizer(pi, my_callback, NULL, NULL, NULL);
gmp_printf("%Zd = %Zx\n", pi, pi);
mpz_mul(pi, pi, pi);
gmp_printf("%Zd = %Zx\n", pi, pi);
el = push_integer_from_str("3141592653589793238462643383279502884", 0);
el = text_to_expression("char *te xt");
el->tail = text_to_expression(text);
print_list(el);
/*sexpr i = new_int();*/
/*mpz_add(i.i, pi, pi);*/
/*gmp_printf ("%Zd\n", i.i);*/
return 0;
/*return to_i(car(cons(from_i(0),from_i(1))));*/
}

49
implementations/C/notes Normal file
View File

@ -0,0 +1,49 @@
// Example S-exprs
// https://www.hboehm.info/gc/04tutorial.pdf
/**/
/*typedef union se*/
/*{*/
/* struct cons * cp;*/
/* mpz_t i;*/
/*} sexpr;*/
/**/
/*struct cons*/
/*{*/
/* union se head;*/
/* union se tail;*/
/*};*/
/**/
/*#define car(s) (s).cp->head*/
/*#define cdr(s) (s).cp->tail*/
/*#define from_i(z) ({sexpr tmp; tmp.i=z; tmp;})*/
/*#define to_i(s) (s).i*/
/**/
/*sexpr cons(sexpr a, sexpr b) {*/
/* sexpr tmp = {GC_MALLOC(sizeof(struct cons))};*/
/* car(tmp) = a; cdr(tmp) = b;*/
/* return (tmp);*/
/*};*/
/*sexpr new_int(void) {*/
/* sexpr node = {GC_MALLOC(sizeof(struct cons))};*/
/* mpz_init(node.i);*/
/* GC_register_finalizer(node.i, my_callback, NULL, NULL, NULL);*/
/* return (node);*/
/*}*/
typedef struct list_node* JoyList;
/*sexpr i = new_int();*/
/*mpz_add(i.i, pi, pi);*/
/*gmp_printf ("%Zd\n", i.i);*/
/*return to_i(car(cons(from_i(0),from_i(1))));*/
/*gmp_printf("%Zd = %Zx\n", pi, pi);*/
/*mpz_mul(pi, pi, pi);*/
/*gmp_printf("%Zd = %Zx\n", pi, pi);*/