@iotize/tap-scripts
Version:
IoTize Tap scripts
58 lines • 4.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ScriptSyntaxeError = exports.ScriptEndWithErrorCodeError = exports.ScriptError = exports.ScriptErrorCode = void 0;
const util_1 = require("./util");
var ScriptErrorCode;
(function (ScriptErrorCode) {
ScriptErrorCode["InternalError"] = "InternalError";
ScriptErrorCode["InvalidRunState"] = "InvalidRunState";
ScriptErrorCode["EndWithErrorCode"] = "EndWithErrorCode";
ScriptErrorCode["InstructionNotImplemented"] = "InstructionNotImplemented";
ScriptErrorCode["ScriptSynthaxError"] = "ScriptSynthaxError";
ScriptErrorCode["InstructionPartiallyImplemented"] = "InstructionPartiallyImplemented";
ScriptErrorCode["InstructionExecError"] = "InstructionExecError";
})(ScriptErrorCode = exports.ScriptErrorCode || (exports.ScriptErrorCode = {}));
class ScriptError extends Error {
constructor(code, msg) {
super(msg);
this.code = code;
}
static instructionExecError(err, context) {
return new ScriptError(ScriptErrorCode.InstructionExecError, `${(0, util_1.contextToString)(context)}: ${err.message}`);
}
static instructionPartiallyImplemented(instruction, msg) {
return new ScriptError(ScriptErrorCode.InstructionPartiallyImplemented, msg);
}
static internalError(message) {
return new ScriptError(ScriptErrorCode.InternalError, message);
}
static invalidRunState(message) {
return new ScriptError(ScriptErrorCode.InvalidRunState, message);
}
static instructionNotImplementedYet(ctx, msg) {
throw new ScriptError(ScriptErrorCode.InstructionNotImplemented, `${(0, util_1.contextToString)(ctx)}:` +
(msg || `Instruction not implemented yet`));
}
static syntaxError(parser) {
throw new ScriptSyntaxeError(parser);
}
static endWithErrorCode(resultCode) {
return new ScriptEndWithErrorCodeError(resultCode);
}
}
exports.ScriptError = ScriptError;
class ScriptEndWithErrorCodeError extends ScriptError {
constructor(errorCode) {
super(ScriptErrorCode.EndWithErrorCode, `Script ended with error code ${errorCode}`);
this.errorCode = errorCode;
}
}
exports.ScriptEndWithErrorCodeError = ScriptEndWithErrorCodeError;
class ScriptSyntaxeError extends ScriptError {
constructor(parser) {
super(ScriptErrorCode.ScriptSynthaxError, `Script has ${parser.numberOfSyntaxErrors} synthax error(s)`);
this.parser = parser;
}
}
exports.ScriptSyntaxeError = ScriptSyntaxeError;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsaUNBQXlDO0FBRXpDLElBQVksZUFRWDtBQVJELFdBQVksZUFBZTtJQUN2QixrREFBK0IsQ0FBQTtJQUMvQixzREFBbUMsQ0FBQTtJQUNuQyx3REFBcUMsQ0FBQTtJQUNyQywwRUFBdUQsQ0FBQTtJQUN2RCw0REFBeUMsQ0FBQTtJQUN6QyxzRkFBbUUsQ0FBQTtJQUNuRSxnRUFBNkMsQ0FBQTtBQUNqRCxDQUFDLEVBUlcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFRMUI7QUFFRCxNQUFhLFdBQVksU0FBUSxLQUFLO0lBQ2xDLFlBQW1CLElBQXFCLEVBQUUsR0FBVztRQUNqRCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFESSxTQUFJLEdBQUosSUFBSSxDQUFpQjtJQUV4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQVUsRUFBRSxPQUEyQjtRQUMvRCxPQUFPLElBQUksV0FBVyxDQUNsQixlQUFlLENBQUMsb0JBQW9CLEVBQ3BDLEdBQUcsSUFBQSxzQkFBZSxFQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FDaEQsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNLENBQUMsK0JBQStCLENBQ2xDLFdBQXNDLEVBQ3RDLEdBQVc7UUFFWCxPQUFPLElBQUksV0FBVyxDQUNsQixlQUFlLENBQUMsK0JBQStCLEVBQy9DLEdBQUcsQ0FDTixDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBZTtRQUNoQyxPQUFPLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBZTtRQUNsQyxPQUFPLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxHQUFzQixFQUFFLEdBQVk7UUFDcEUsTUFBTSxJQUFJLFdBQVcsQ0FDakIsZUFBZSxDQUFDLHlCQUF5QixFQUN6QyxHQUFHLElBQUEsc0JBQWUsRUFBQyxHQUFHLENBQUMsR0FBRztZQUN0QixDQUFDLEdBQUcsSUFBSSxpQ0FBaUMsQ0FBQyxDQUNqRCxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBd0I7UUFDdkMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBa0I7UUFDdEMsT0FBTyxJQUFJLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDSjtBQTNDRCxrQ0EyQ0M7QUFFRCxNQUFhLDJCQUE0QixTQUFRLFdBQVc7SUFDeEQsWUFBbUIsU0FBaUI7UUFDaEMsS0FBSyxDQUNELGVBQWUsQ0FBQyxnQkFBZ0IsRUFDaEMsZ0NBQWdDLFNBQVMsRUFBRSxDQUM5QyxDQUFDO1FBSmEsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUtwQyxDQUFDO0NBQ0o7QUFQRCxrRUFPQztBQUVELE1BQWEsa0JBQW1CLFNBQVEsV0FBVztJQUMvQyxZQUFtQixNQUF3QjtRQUN2QyxLQUFLLENBQ0QsZUFBZSxDQUFDLGtCQUFrQixFQUNsQyxjQUFjLE1BQU0sQ0FBQyxvQkFBb0IsbUJBQW1CLENBQy9ELENBQUM7UUFKYSxXQUFNLEdBQU4sTUFBTSxDQUFrQjtJQUszQyxDQUFDO0NBQ0o7QUFQRCxnREFPQyJ9