error.js
596 Bytes
"use strict";
const fmt = require("simple-fmt");
const assert = require("assert");
function error(line, var_args) {
assert(arguments.length >= 2);
const msg = (arguments.length === 2 ?
String(var_args) : fmt.apply(fmt, Array.prototype.slice.call(arguments, 1)));
error.errors.push(line === -1 ? msg : fmt("line {0}: {1}", line, msg));
}
error.reset = function() {
error.errors = [];
};
error.getline = function(node) {
if (node && node.loc && node.loc.start) {
return node.loc.start.line;
}
return -1;
};
error.reset();
module.exports = error;