Print ints.
This commit is contained in:
parent
202747cfbb
commit
b09055f299
|
|
@ -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))));*/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);*/
|
||||
Loading…
Reference in New Issue