UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

41 lines (40 loc) 3.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mapException = void 0; const ExprEvalResult_js_1 = require("../expression/ExprEvalResult.js"); const SyntaxErrorException_js_1 = require("./SyntaxErrorException.js"); const SyntaxErrorMapper_js_1 = require("./mapper/SyntaxErrorMapper.js"); const IfcExpressionUtils_js_1 = require("../util/IfcExpressionUtils.js"); const ExprKind_js_1 = require("../expression/ExprKind.js"); const MissingFunctionArgumentExceptionMapper_js_1 = require("./mapper/MissingFunctionArgumentExceptionMapper.js"); const NoSuchFunctionExceptionMapper_js_1 = require("./mapper/NoSuchFunctionExceptionMapper.js"); const ExpressionTypeError_js_1 = require("./ExpressionTypeError.js"); const MissingFunctionArgumentException_js_1 = require("./MissingFunctionArgumentException.js"); const NoSuchFunctionException_js_1 = require("./NoSuchFunctionException.js"); const NoSuchMethodException_js_1 = require("./NoSuchMethodException.js"); const WrongFunctionArgumentTypeException_js_1 = require("./WrongFunctionArgumentTypeException.js"); const WrongFunctionArgumentTypeExceptionMapper_js_1 = require("./mapper/WrongFunctionArgumentTypeExceptionMapper.js"); const InvalidSyntaxException_js_1 = require("./InvalidSyntaxException.js"); const ValidationExceptionMapper_js_1 = require("./mapper/ValidationExceptionMapper.js"); const ValidationException_js_1 = require("./ValidationException.js"); const SpuriousFunctionArgumentExceptionMapper_js_1 = require("./mapper/SpuriousFunctionArgumentExceptionMapper.js"); const SpuriousFunctionArgumentException_js_1 = require("./SpuriousFunctionArgumentException.js"); const mappers = new Map(); mappers.set(SyntaxErrorException_js_1.SyntaxErrorException.name, new SyntaxErrorMapper_js_1.SyntaxErrorMapper()); mappers.set(ValidationException_js_1.ValidationException.name, new ValidationExceptionMapper_js_1.ValidationExceptionMapper()); mappers.set(ExpressionTypeError_js_1.ExpressionTypeError.name, mappers.get(ValidationException_js_1.ValidationException.name)); mappers.set(MissingFunctionArgumentException_js_1.MissingFunctionArgumentException.name, new MissingFunctionArgumentExceptionMapper_js_1.MissingFunctionArgumentExceptionMapper()); mappers.set(SpuriousFunctionArgumentException_js_1.SpuriousFunctionArgumentException.name, new SpuriousFunctionArgumentExceptionMapper_js_1.SpuriousFunctionArgumentExceptionMapper()); mappers.set(NoSuchFunctionException_js_1.NoSuchFunctionException.name, new NoSuchFunctionExceptionMapper_js_1.NoSuchFunctionExceptionMapper()); mappers.set(NoSuchMethodException_js_1.NoSuchMethodException.name, mappers.get(NoSuchFunctionException_js_1.NoSuchFunctionException.name)); mappers.set(WrongFunctionArgumentTypeException_js_1.WrongFunctionArgumentTypeException.name, new WrongFunctionArgumentTypeExceptionMapper_js_1.WrongFunctionArgumentTypeExceptionMapper()); mappers.set(InvalidSyntaxException_js_1.InvalidSyntaxException.name, mappers.get(ValidationException_js_1.ValidationException.name)); function mapException(e) { const mapper = mappers.get(e.constructor.name); if ((0, IfcExpressionUtils_js_1.isNullish)(mapper)) { return new ExprEvalResult_js_1.ExprEvalErrorObj(ExprKind_js_1.ExprKind.PARSE_ERROR, ExprEvalResult_js_1.ExprEvalStatus.ERROR, e.message, this.getTextSpan()); } return mapper.mapException(e); } exports.mapException = mapException; //# sourceMappingURL=ExceptionToExprEvalErrorMapper.js.map