aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-05-26 07:52:04 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-05-26 07:52:04 -0400
commit9ba07836f44c8bb0cf31e23ca82c3bd865487c80 (patch)
tree82562771682960324f2b104272523eede1bc9b33
parent27e951549590c3a973c0e7675305ed4bc26450bf (diff)
Add REPL mode to Node.js version of BQN
-rwxr-xr-xbqn.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/bqn.js b/bqn.js
index bbbc2327..c0e1fb7e 100755
--- a/bqn.js
+++ b/bqn.js
@@ -57,7 +57,14 @@ if (!module.parent) {
console.error(''+fmtErr(e)+'');
}
}
- if (arg0[0] !== '-' || (arg0==='-f'&&(arg0=(args=args.slice(1))[0],1))) {
+ if (!has(arg0) || arg0==='-r') {
+ let stdin = process.stdin, repl = sysvals.makerepl();
+ let e = exec(s=>show(repl(str(s))));
+ stdin.on('end', () => { process.exit(); });
+ stdin.on('readable', () => {
+ let inp; while ((inp=stdin.read())!==null) { e(inp.toString()); }
+ });
+ } else if (arg0[0] !== '-' || (arg0==='-f'&&(arg0=(args=args.slice(1))[0],1))) {
let f=arg0, a=list(args.slice(1).map(str));
exec(s=>bqn_file(f,s,a))(fs.readFileSync(f,'utf-8'));
} else if (arg0 === '-e') {