tfl-js
Version:
A TypeScript library for parsing and evaluating propositional logic formulas
52 lines • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ValidationError = exports.EvaluationError = exports.ParseError = exports.TFLError = void 0;
/**
* Base error class for all tfl-js errors
*/
class TFLError extends Error {
constructor(message) {
super(message);
this.name = this.constructor.name;
}
}
exports.TFLError = TFLError;
/**
* Error thrown during parsing
*/
class ParseError extends TFLError {
constructor(message, position, line, column, input) {
super(message);
this.position = position;
this.line = line;
this.column = column;
this.input = input;
}
toString() {
return `${this.name} at line ${this.line}, column ${this.column}: ${this.message}\n` +
`${this.input}\n` +
`${' '.repeat(this.column - 1)}^`;
}
}
exports.ParseError = ParseError;
/**
* Error thrown during formula evaluation
*/
class EvaluationError extends TFLError {
constructor(message, formula) {
super(message);
this.formula = formula;
}
}
exports.EvaluationError = EvaluationError;
/**
* Error thrown during formula validation
*/
class ValidationError extends TFLError {
constructor(message, formula) {
super(message);
this.formula = formula;
}
}
exports.ValidationError = ValidationError;
//# sourceMappingURL=index.js.map