#include "enfilade.h" #include "enfilade_s7.h" #include #include static void repl(s7_scheme *sc) { char buffer[4096]; for (;;) { fputs("> ", stdout); fflush(stdout); if (!fgets(buffer, sizeof(buffer), stdin)) { fputc('\n', stdout); return; } if (buffer[0] == '\n' && buffer[1] == '\0') continue; { s7_pointer value = s7_eval_c_string(sc, buffer); printf("%s\n", s7_object_to_c_string(sc, value)); } } } int main(int argc, char **argv) { if (argc == 2 && (!strcmp(argv[1], "-V") || !strcmp(argv[1], "--version"))) { printf("ensifer version %s\n", ENSIFER_VERSION); return 0; } if (argc == 2 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help"))) { puts("Usage: logan [-h|--help] [-V|--version]"); return 0; } if (argc != 1) { fprintf(stderr, "Usage: logan [-h|--help] [-V|--version]\n"); return 2; } s7_scheme *sc = s7_init(); init_enfilade_s7(sc); repl(sc); s7_free(sc); return 0; }