diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-05-26 07:52:04 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-05-26 07:52:04 -0400 |
| commit | 9ba07836f44c8bb0cf31e23ca82c3bd865487c80 (patch) | |
| tree | 82562771682960324f2b104272523eede1bc9b33 | |
| parent | 27e951549590c3a973c0e7675305ed4bc26450bf (diff) | |
Add REPL mode to Node.js version of BQN
| -rwxr-xr-x | bqn.js | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -57,7 +57,14 @@ if (!module.parent) { console.error('[31m'+fmtErr(e)+'[39m'); } } - 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') { |
