import std.stdio; import std.string; import std.file; import std.conv; /* import parser; import dbg; import chunk; import compiler; */ import vm; /* import compiler; import obj; import dbg; import chunk; import vm; */ void repl() { while(true) { write("> "); string input = strip(stdin.readln()); if (input.length == 0) { continue; } /* Parser parser = new Parser(input); Compiler compiler = new Compiler(ObjType.SCRIPT, &parser); Function func = compiler.compile(); */ /* VM vm = new VM(func); vm.run(); */ interpret(input); } } string readFile(string fname) { File f = File(fname, "r"); char[] ret = []; while (!f.eof()) { ret = ret ~ f.readln(); } f.close(); return to!string(ret); } 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; } string data = readFile(fname); interpret(data); } return 0; }