~ chicken-core (chicken-5) /tests/embedded3.c
Trap1/* embedded3-c.c */23#include <chicken.h>4#include <assert.h>56#ifdef C_SIXTY_FOUR7# ifdef C_LLP8# define UWORD_FORMAT_STRING "0x%016llx"9# else10# define UWORD_FORMAT_STRING "0x%016lx"11# endif12#else13# define UWORD_FORMAT_STRING "0x%08x"14#endif1516extern double baz(int);1718int main() {19 char buffer[ 256 ];20 int status;21 C_word val = C_SCHEME_UNDEFINED;22 C_word *data[ 1 ];2324 data[ 0 ] = &val;2526 CHICKEN_run(C_toplevel);2728 status = CHICKEN_read("(bar 99)", &val);29 assert(status);3031 C_gc_protect(data, 1);3233 printf("data: "UWORD_FORMAT_STRING"\n", (C_uword)val);3435 status = CHICKEN_eval_string_to_string("(bar)", buffer, 255);36 assert(!status);3738 CHICKEN_get_error_message(buffer, 255);39 printf("ouch (expected): %s\n", buffer);4041 status = CHICKEN_eval_string_to_string("(bar 23)", buffer, 255);42 assert(status);4344 printf("-> %s\n", buffer);45 printf("data: "UWORD_FORMAT_STRING"\n", (C_uword)val);4647 status = CHICKEN_eval_to_string(val, buffer, 255);48 assert(status);49 printf("-> %s\n", buffer);5051 printf("-> %g\n", baz(22));5253 return 0;54}