UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

37 lines (36 loc) 2.57 kB
import { ExprEvalErrorObj, ExprEvalStatus, } from "../expression/ExprEvalResult.js"; import { SyntaxErrorException } from "./SyntaxErrorException.js"; import { SyntaxErrorMapper } from "./mapper/SyntaxErrorMapper.js"; import { isNullish } from "../util/IfcExpressionUtils.js"; import { ExprKind } from "../expression/ExprKind.js"; import { MissingFunctionArgumentExceptionMapper } from "./mapper/MissingFunctionArgumentExceptionMapper.js"; import { NoSuchFunctionExceptionMapper } from "./mapper/NoSuchFunctionExceptionMapper.js"; import { ExpressionTypeError } from "./ExpressionTypeError.js"; import { MissingFunctionArgumentException } from "./MissingFunctionArgumentException.js"; import { NoSuchFunctionException } from "./NoSuchFunctionException.js"; import { NoSuchMethodException } from "./NoSuchMethodException.js"; import { WrongFunctionArgumentTypeException } from "./WrongFunctionArgumentTypeException.js"; import { WrongFunctionArgumentTypeExceptionMapper } from "./mapper/WrongFunctionArgumentTypeExceptionMapper.js"; import { InvalidSyntaxException } from "./InvalidSyntaxException.js"; import { ValidationExceptionMapper } from "./mapper/ValidationExceptionMapper.js"; import { ValidationException } from "./ValidationException.js"; import { SpuriousFunctionArgumentExceptionMapper } from "./mapper/SpuriousFunctionArgumentExceptionMapper.js"; import { SpuriousFunctionArgumentException } from "./SpuriousFunctionArgumentException.js"; const mappers = new Map(); mappers.set(SyntaxErrorException.name, new SyntaxErrorMapper()); mappers.set(ValidationException.name, new ValidationExceptionMapper()); mappers.set(ExpressionTypeError.name, mappers.get(ValidationException.name)); mappers.set(MissingFunctionArgumentException.name, new MissingFunctionArgumentExceptionMapper()); mappers.set(SpuriousFunctionArgumentException.name, new SpuriousFunctionArgumentExceptionMapper()); mappers.set(NoSuchFunctionException.name, new NoSuchFunctionExceptionMapper()); mappers.set(NoSuchMethodException.name, mappers.get(NoSuchFunctionException.name)); mappers.set(WrongFunctionArgumentTypeException.name, new WrongFunctionArgumentTypeExceptionMapper()); mappers.set(InvalidSyntaxException.name, mappers.get(ValidationException.name)); export function mapException(e) { const mapper = mappers.get(e.constructor.name); if (isNullish(mapper)) { return new ExprEvalErrorObj(ExprKind.PARSE_ERROR, ExprEvalStatus.ERROR, e.message, this.getTextSpan()); } return mapper.mapException(e); } //# sourceMappingURL=ExceptionToExprEvalErrorMapper.js.map