Browse Source

repl stuff

master
Martin Dørum 3 years ago
parent
commit
4a053e3e36
1 changed files with 5 additions and 9 deletions
  1. 5
    9
      cmd/main.c

+ 5
- 9
cmd/main.c View File

} }
} }


static int repl() {
static void repl() {
struct l2_io_mem_writer w = { struct l2_io_mem_writer w = {
.w.write = l2_io_mem_write, .w.write = l2_io_mem_write,
}; };
char line[4096]; char line[4096];
#ifdef USE_READLINE #ifdef USE_READLINE
char *rline = readline("> "); char *rline = readline("> ");
if (rline == NULL) return -1;
if (rline == NULL) return;
if (rline[0] == '\0') continue; if (rline[0] == '\0') continue;
snprintf(line, sizeof(line), "print (%s)", rline); snprintf(line, sizeof(line), "print (%s)", rline);
free(rline); free(rline);
#else #else
char rline[4096]; char rline[4096];
if (fgets(rline, sizeof(rline), stdin) == NULL) return -1;
if (fgets(rline, sizeof(rline), stdin) == NULL) return;
if (rline[0] == '\n' && rline[1] == '\0') continue; if (rline[0] == '\n' && rline[1] == '\0') continue;
snprintf(line, sizeof(line), "print (%s)", rline); snprintf(line, sizeof(line), "print (%s)", rline);
#endif #endif
l2_vm_gc(&vm); l2_vm_gc(&vm);
} }
} }

return 0;
} }


static void usage(const char *argv0) { static void usage(const char *argv0) {
} }


if (do_repl) { if (do_repl) {
if (repl() < 0) {
return 1;
}

repl();
printf("\n");
return 0; return 0;
} }



Loading…
Cancel
Save