import std.stdio; import std.string; import std.file; import std.conv; /* import parser; import dbg; import chunk; import compiler; */ import vm; import dbg; /* import compiler; import obj; import dbg; import chunk; import vm; */ void repl() { REPL = true; VM vm = new VM(); interpret(getCore(), vm); while(true) { write("> "); string input = strip(stdin.readln()); if (input.length == 0) { continue; } interpret(input, vm); } } string readFile(string fname) { File f = File(fname, "r"); char[] ret = []; while (!f.eof()) { ret = ret ~ f.readln(); } f.close(); return to!string(ret); } string getCore() { return readFile("core.neb"); } int main(string[] args) { if (args.length <= 1) { repl(); } else { string fname = args[1]; if (!exists(fname)) { writeln("file doesn't exist: ", fname); return 1; } VM vm = new VM(); interpret(getCore(), vm); string data = readFile(fname); interpret(data, vm); } return 0; }