#include #include #include #include "types.h" #include "runtime.h" FILE* in; FILE* out; void (*error_handler)(); void print_result(int64_t); void print_char(int64_t); void error_exit() { printf("err\n"); exit(1); } void raise_error() { return error_handler(); } int main(int argc, char** argv) { in = stdin; out = stdout; error_handler = &error_exit; print_result(entry()); return 0; } void print_result(int64_t result) { if (int_type_tag == (int_type_mask & result)) { printf("%" PRId64 "\n", result >> int_shift); } else if (char_type_tag == (char_type_mask & result)) { print_char(result); printf("\n"); } else { switch (result) { case val_true: printf("#t\n"); break; case val_false: printf("#f\n"); break; case val_eof: printf("#\n"); break; case val_void: /* nothing */ break; } } }