hclang
Version:
Homoiconic C: Programming without a Language
40 lines • 2.93 kB
JavaScript
import { HCEval } from '../execute/hc-eval.js';
import { HCLog } from '../execute/hc-log.js';
import { HCTest } from '../execute/hc-test.js';
import minimist from 'minimist';
import { runfile } from './runfile.js';
const aliases = {
e: 'evaluate',
h: 'help',
i: 'interactive',
t: 'testdoc',
v: 'verbose',
V: 'version'
};
const options = minimist(process.argv.slice(2), { alias: aliases });
if (options.verbose) {
console.error('options', options);
}
const context = HCEval.make_context(process.env);
const out = new HCLog(context);
let hc_eval = new HCEval(out);
let evaluated = false;
let test;
if (options.testdoc) {
test = new HCTest(out);
hc_eval = new HCEval(test);
evaluated = true;
}
if (options.evaluate) {
hc_eval.call(options.evaluate.toString());
evaluated = true;
}
options._.forEach((file) => {
evaluated = runfile(hc_eval, file);
});
if (options.interactive || !evaluated) {
out.prompt = true;
hc_eval.repl();
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2hjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM5QyxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFDL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV0QyxNQUFNLE9BQU8sR0FBRztJQUNkLENBQUMsRUFBRSxVQUFVO0lBQ2IsQ0FBQyxFQUFFLE1BQU07SUFDVCxDQUFDLEVBQUUsYUFBYTtJQUNoQixDQUFDLEVBQUUsU0FBUztJQUNaLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFNBQVM7Q0FDYixDQUFBO0FBQ0QsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7QUFDbkUsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO0lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0NBQ2xDO0FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDaEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDOUIsSUFBSSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDN0IsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFBO0FBQ3JCLElBQUksSUFBWSxDQUFBO0FBRWhCLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtJQUNuQixJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdEIsT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFCLFNBQVMsR0FBRyxJQUFJLENBQUE7Q0FDakI7QUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7SUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7SUFDekMsU0FBUyxHQUFHLElBQUksQ0FBQTtDQUNqQjtBQUVELE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7SUFDOUIsU0FBUyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDcEMsQ0FBQyxDQUFDLENBQUE7QUFFRixJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLEVBQUU7SUFDckMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7SUFDakIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO0NBQ2YifQ==