ifc-expressions 0.3.4 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -0
- package/dist/E.d.ts +45 -0
- package/dist/ExprVisitor.d.ts +29 -18
- package/dist/IfcExpression.d.ts +17 -11
- package/dist/IfcExpressionErrorListener.d.ts +6 -4
- package/dist/IfcExpressionUtils.d.ts +1 -0
- package/dist/IfcExpressionValidationListener.d.ts +41 -0
- package/dist/cjs/E.js +83 -0
- package/dist/cjs/E.js.map +1 -0
- package/dist/cjs/ExprVisitor.js +162 -78
- package/dist/cjs/ExprVisitor.js.map +1 -1
- package/dist/cjs/IfcExpression.js +51 -13
- package/dist/cjs/IfcExpression.js.map +1 -1
- package/dist/cjs/IfcExpressionErrorListener.js +9 -5
- package/dist/cjs/IfcExpressionErrorListener.js.map +1 -1
- package/dist/cjs/IfcExpressionUtils.js +5 -1
- package/dist/cjs/IfcExpressionUtils.js.map +1 -1
- package/dist/cjs/IfcExpressionValidationListener.js +184 -0
- package/dist/cjs/IfcExpressionValidationListener.js.map +1 -0
- package/dist/cjs/context/IfcElementAccessor.js +19 -3
- package/dist/cjs/context/IfcElementAccessor.js.map +1 -1
- package/dist/cjs/context/IfcPropertyAccessor.js +14 -2
- package/dist/cjs/context/IfcPropertyAccessor.js.map +1 -1
- package/dist/cjs/context/IfcPropertySetAccessor.js +1 -1
- package/dist/cjs/context/IfcPropertySetAccessor.js.map +1 -1
- package/dist/cjs/context/IfcRootObjectAccessor.js.map +1 -1
- package/dist/cjs/context/IfcTypeObjectAccessor.js +13 -1
- package/dist/cjs/context/IfcTypeObjectAccessor.js.map +1 -1
- package/dist/cjs/context/NamedObjectAccessor.js.map +1 -1
- package/dist/cjs/context/NopContext.js +13 -0
- package/dist/cjs/context/NopContext.js.map +1 -0
- package/dist/cjs/context/ObjectAccessor.js.map +1 -1
- package/dist/cjs/error/ExceptionToExprEvalErrorMapper.js +37 -0
- package/dist/cjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -0
- package/dist/cjs/error/ExpressionTypeError.js +11 -0
- package/dist/cjs/error/ExpressionTypeError.js.map +1 -0
- package/dist/cjs/error/IfcExpressionFunctionConfigException.js.map +1 -0
- package/dist/cjs/error/InvalidSyntaxException.js +12 -0
- package/dist/cjs/error/InvalidSyntaxException.js.map +1 -0
- package/dist/cjs/error/MissingFunctionArgumentException.js +14 -0
- package/dist/cjs/error/MissingFunctionArgumentException.js.map +1 -0
- package/dist/cjs/error/NoSuchFunctionException.js +12 -0
- package/dist/cjs/error/NoSuchFunctionException.js.map +1 -0
- package/dist/cjs/error/NoSuchMethodException.js +13 -0
- package/dist/cjs/error/NoSuchMethodException.js.map +1 -0
- package/dist/cjs/{SyntaxErrorException.js → error/SyntaxErrorException.js} +1 -1
- package/dist/cjs/error/SyntaxErrorException.js.map +1 -0
- package/dist/cjs/error/ValidationException.js +28 -0
- package/dist/cjs/error/ValidationException.js.map +1 -0
- package/dist/cjs/error/WrongFunctionArgumentTypeException.js +16 -0
- package/dist/cjs/error/WrongFunctionArgumentTypeException.js.map +1 -0
- package/dist/cjs/error/mapper/MissingFunctionArgumentExceptionMapper.js +11 -0
- package/dist/cjs/error/mapper/MissingFunctionArgumentExceptionMapper.js.map +1 -0
- package/dist/cjs/error/mapper/NoSuchFunctionExceptionMapper.js +15 -0
- package/dist/cjs/error/mapper/NoSuchFunctionExceptionMapper.js.map +1 -0
- package/dist/cjs/error/mapper/SyntaxErrorMapper.js +11 -0
- package/dist/cjs/error/mapper/SyntaxErrorMapper.js.map +1 -0
- package/dist/cjs/error/mapper/ValidationExceptionMapper.js +20 -0
- package/dist/cjs/error/mapper/ValidationExceptionMapper.js.map +1 -0
- package/dist/cjs/error/mapper/WrongFunctionArgumentTypeExceptionMapper.js +11 -0
- package/dist/cjs/error/mapper/WrongFunctionArgumentTypeExceptionMapper.js.map +1 -0
- package/dist/cjs/expression/Expr.js.map +1 -1
- package/dist/cjs/expression/ExprBase.js.map +1 -1
- package/dist/cjs/expression/ExprEvalResult.js +67 -28
- package/dist/cjs/expression/ExprEvalResult.js.map +1 -1
- package/dist/cjs/expression/ExprKind.js +17 -0
- package/dist/cjs/expression/ExprKind.js.map +1 -1
- package/dist/cjs/expression/boolean/AndExpr.js +23 -0
- package/dist/cjs/expression/boolean/AndExpr.js.map +1 -0
- package/dist/cjs/expression/boolean/BooleanLiteralExpr.js +23 -0
- package/dist/cjs/expression/boolean/BooleanLiteralExpr.js.map +1 -0
- package/dist/cjs/expression/boolean/NotExpr.js +23 -0
- package/dist/cjs/expression/boolean/NotExpr.js.map +1 -0
- package/dist/cjs/expression/boolean/OrExpr.js +23 -0
- package/dist/cjs/expression/boolean/OrExpr.js.map +1 -0
- package/dist/cjs/expression/boolean/XorExpr.js +25 -0
- package/dist/cjs/expression/boolean/XorExpr.js.map +1 -0
- package/dist/cjs/expression/comparison/ComparisonOp.js +23 -0
- package/dist/cjs/expression/comparison/ComparisonOp.js.map +1 -0
- package/dist/cjs/expression/comparison/EqualsExpr.js +23 -0
- package/dist/cjs/expression/comparison/EqualsExpr.js.map +1 -0
- package/dist/cjs/expression/comparison/GreaterThan.js +12 -0
- package/dist/cjs/expression/comparison/GreaterThan.js.map +1 -0
- package/dist/cjs/expression/comparison/GreaterThanOrEqual.js +12 -0
- package/dist/cjs/expression/comparison/GreaterThanOrEqual.js.map +1 -0
- package/dist/cjs/expression/comparison/LessThan.js +12 -0
- package/dist/cjs/expression/comparison/LessThan.js.map +1 -0
- package/dist/cjs/expression/comparison/LessThanOrEqual.js +12 -0
- package/dist/cjs/expression/comparison/LessThanOrEqual.js.map +1 -0
- package/dist/cjs/expression/comparison/NotEqualsExpr.js +23 -0
- package/dist/cjs/expression/comparison/NotEqualsExpr.js.map +1 -0
- package/dist/cjs/expression/function/Func.js +31 -3
- package/dist/cjs/expression/function/Func.js.map +1 -1
- package/dist/cjs/expression/function/FuncArg.js +4 -0
- package/dist/cjs/expression/function/FuncArg.js.map +1 -1
- package/dist/cjs/expression/function/FunctionExpr.js +13 -5
- package/dist/cjs/expression/function/FunctionExpr.js.map +1 -1
- package/dist/cjs/expression/function/IfcExpressionFunctions.js +64 -6
- package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgAny.js +15 -0
- package/dist/cjs/expression/function/arg/FuncArgAny.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgBase.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgBoolean.js +25 -0
- package/dist/cjs/expression/function/arg/FuncArgBoolean.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgInt.js +4 -0
- package/dist/cjs/expression/function/arg/FuncArgInt.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgMappings.js +45 -0
- package/dist/cjs/expression/function/arg/FuncArgMappings.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgNumeric.js +4 -0
- package/dist/cjs/expression/function/arg/FuncArgNumeric.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgObjectAccessor.js +31 -0
- package/dist/cjs/expression/function/arg/FuncArgObjectAccessor.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgRegex.js +28 -0
- package/dist/cjs/expression/function/arg/FuncArgRegex.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgSimpleRegex.js +20 -0
- package/dist/cjs/expression/function/arg/FuncArgSimpleRegex.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgString.js +25 -0
- package/dist/cjs/expression/function/arg/FuncArgString.js.map +1 -0
- package/dist/cjs/expression/function/impl/ApplyRegex.js +26 -0
- package/dist/cjs/expression/function/impl/ApplyRegex.js.map +1 -0
- package/dist/cjs/expression/function/impl/AttributeAccessorFunction.js +27 -0
- package/dist/cjs/expression/function/impl/AttributeAccessorFunction.js.map +1 -0
- package/dist/cjs/expression/function/impl/CompareMagnitudes.js +39 -0
- package/dist/cjs/expression/function/impl/CompareMagnitudes.js.map +1 -0
- package/dist/cjs/expression/function/impl/EQUALS.js +28 -0
- package/dist/cjs/expression/function/impl/EQUALS.js.map +1 -0
- package/dist/cjs/expression/function/impl/EXISTS.js +43 -0
- package/dist/cjs/expression/function/impl/EXISTS.js.map +1 -0
- package/dist/cjs/expression/function/impl/FuncBooleanBinary.js +29 -0
- package/dist/cjs/expression/function/impl/FuncBooleanBinary.js.map +1 -0
- package/dist/cjs/expression/function/impl/MAP.js +37 -48
- package/dist/cjs/expression/function/impl/MAP.js.map +1 -1
- package/dist/cjs/expression/function/impl/MatchesPattern.js +38 -0
- package/dist/cjs/expression/function/impl/MatchesPattern.js.map +1 -0
- package/dist/cjs/expression/function/impl/NOT.js +23 -0
- package/dist/cjs/expression/function/impl/NOT.js.map +1 -0
- package/dist/cjs/expression/function/impl/PROPERTY.js +51 -0
- package/dist/cjs/expression/function/impl/PROPERTY.js.map +1 -0
- package/dist/cjs/expression/function/impl/PROPERTYSET.js +70 -0
- package/dist/cjs/expression/function/impl/PROPERTYSET.js.map +1 -0
- package/dist/cjs/expression/function/impl/ROUND.js +4 -0
- package/dist/cjs/expression/function/impl/ROUND.js.map +1 -1
- package/dist/cjs/expression/function/impl/ReplacePattern.js +40 -0
- package/dist/cjs/expression/function/impl/ReplacePattern.js.map +1 -0
- package/dist/cjs/expression/function/impl/SWITCH.js +65 -0
- package/dist/cjs/expression/function/impl/SWITCH.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOSTRING.js +21 -0
- package/dist/cjs/expression/function/impl/TOSTRING.js.map +1 -0
- package/dist/cjs/expression/function/impl/TYPE.js +37 -0
- package/dist/cjs/expression/function/impl/TYPE.js.map +1 -0
- package/dist/cjs/expression/numeric/DivideExpr.js +7 -0
- package/dist/cjs/expression/numeric/DivideExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/MinusExpr.js +7 -0
- package/dist/cjs/expression/numeric/MinusExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/MultiplyExpr.js +7 -0
- package/dist/cjs/expression/numeric/MultiplyExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/NumericLiteralExpr.js +9 -1
- package/dist/cjs/expression/numeric/NumericLiteralExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/PlusExpr.js +7 -0
- package/dist/cjs/expression/numeric/PlusExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/PowerExpr.js +23 -0
- package/dist/cjs/expression/numeric/PowerExpr.js.map +1 -0
- package/dist/cjs/expression/numeric/UnaryMinusExpr.js +23 -0
- package/dist/cjs/expression/numeric/UnaryMinusExpr.js.map +1 -0
- package/dist/cjs/expression/poly/PlusOrConcatExpr.js +37 -0
- package/dist/cjs/expression/poly/PlusOrConcatExpr.js.map +1 -0
- package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js +9 -1
- package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/reference/PropObjectReferenceExpr.js +9 -1
- package/dist/cjs/expression/reference/PropObjectReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/string/StringConcatExpr.js +7 -0
- package/dist/cjs/expression/string/StringConcatExpr.js.map +1 -1
- package/dist/cjs/expression/string/StringLiteralExpr.js +9 -1
- package/dist/cjs/expression/string/StringLiteralExpr.js.map +1 -1
- package/dist/cjs/expression/structure/ArrayExpr.js +7 -0
- package/dist/cjs/expression/structure/ArrayExpr.js.map +1 -1
- package/dist/cjs/expression/structure/ParenthesisExpr.js +21 -0
- package/dist/cjs/expression/structure/ParenthesisExpr.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionLexer.js +84 -87
- package/dist/cjs/gen/parser/IfcExpressionLexer.js.map +1 -1
- package/dist/cjs/gen/parser/IfcExpressionListener.js.map +1 -1
- package/dist/cjs/gen/parser/IfcExpressionParser.js +785 -675
- package/dist/cjs/gen/parser/IfcExpressionParser.js.map +1 -1
- package/dist/cjs/gen/parser/IfcExpressionVisitor.js.map +1 -1
- package/dist/cjs/type/ArrayType.js +69 -0
- package/dist/cjs/type/ArrayType.js.map +1 -0
- package/dist/cjs/{value/LiteralValue.js → type/ExprType.js} +1 -1
- package/dist/cjs/type/ExprType.js.map +1 -0
- package/dist/cjs/type/SimpleType.js +46 -0
- package/dist/cjs/type/SimpleType.js.map +1 -0
- package/dist/cjs/type/TupleType.js +100 -0
- package/dist/cjs/type/TupleType.js.map +1 -0
- package/dist/cjs/type/TypeDisjunction.js +64 -0
- package/dist/cjs/type/TypeDisjunction.js.map +1 -0
- package/dist/cjs/type/TypeManager.js +63 -0
- package/dist/cjs/type/TypeManager.js.map +1 -0
- package/dist/cjs/type/Types.js +91 -0
- package/dist/cjs/type/Types.js.map +1 -0
- package/dist/cjs/value/ArrayValue.js +18 -0
- package/dist/cjs/value/ArrayValue.js.map +1 -1
- package/dist/cjs/value/BooleanValue.js +10 -0
- package/dist/cjs/value/BooleanValue.js.map +1 -1
- package/dist/cjs/value/{PrimitiveValueType.js → BoxedValueTypes.js} +1 -1
- package/dist/cjs/value/BoxedValueTypes.js.map +1 -0
- package/dist/cjs/value/Comparable.js +9 -0
- package/dist/cjs/value/Comparable.js.map +1 -0
- package/dist/cjs/{expression/reference/ObjectReferenceExpr.js → value/ExpressionValue.js} +1 -1
- package/dist/cjs/value/ExpressionValue.js.map +1 -0
- package/dist/cjs/value/LogicalValue.js +11 -0
- package/dist/cjs/value/LogicalValue.js.map +1 -1
- package/dist/cjs/value/NumericValue.js +10 -0
- package/dist/cjs/value/NumericValue.js.map +1 -1
- package/dist/cjs/value/ObjectAccessorValue.js +32 -0
- package/dist/cjs/value/ObjectAccessorValue.js.map +1 -0
- package/dist/cjs/value/ReferenceValue.js +7 -0
- package/dist/cjs/value/ReferenceValue.js.map +1 -1
- package/dist/cjs/value/StringValue.js +11 -0
- package/dist/cjs/value/StringValue.js.map +1 -1
- package/dist/cjs/value/Value.js.map +1 -1
- package/dist/context/IfcElementAccessor.d.ts +6 -5
- package/dist/context/IfcPropertyAccessor.d.ts +5 -4
- package/dist/context/IfcPropertySetAccessor.d.ts +4 -4
- package/dist/context/IfcRootObjectAccessor.d.ts +2 -2
- package/dist/context/IfcTypeObjectAccessor.d.ts +3 -2
- package/dist/context/NamedObjectAccessor.d.ts +2 -2
- package/dist/context/NopContext.d.ts +5 -0
- package/dist/context/ObjectAccessor.d.ts +2 -2
- package/dist/error/ExceptionToExprEvalErrorMapper.d.ts +5 -0
- package/dist/error/ExpressionTypeError.d.ts +5 -0
- package/dist/error/InvalidSyntaxException.d.ts +6 -0
- package/dist/error/MissingFunctionArgumentException.d.ts +7 -0
- package/dist/error/NoSuchFunctionException.d.ts +6 -0
- package/dist/error/NoSuchMethodException.d.ts +6 -0
- package/dist/{SyntaxErrorException.d.ts → error/SyntaxErrorException.d.ts} +2 -3
- package/dist/error/ValidationException.d.ts +9 -0
- package/dist/error/WrongFunctionArgumentTypeException.d.ts +11 -0
- package/dist/error/mapper/MissingFunctionArgumentExceptionMapper.d.ts +6 -0
- package/dist/error/mapper/NoSuchFunctionExceptionMapper.d.ts +7 -0
- package/dist/error/mapper/SyntaxErrorMapper.d.ts +6 -0
- package/dist/error/mapper/ValidationExceptionMapper.d.ts +8 -0
- package/dist/error/mapper/WrongFunctionArgumentTypeExceptionMapper.d.ts +6 -0
- package/dist/expression/Expr.d.ts +3 -0
- package/dist/expression/ExprBase.d.ts +4 -1
- package/dist/expression/ExprEvalResult.d.ts +60 -15
- package/dist/expression/ExprKind.d.ts +18 -1
- package/dist/expression/boolean/AndExpr.d.ts +12 -0
- package/dist/expression/boolean/BooleanLiteralExpr.d.ts +11 -0
- package/dist/expression/boolean/NotExpr.d.ts +12 -0
- package/dist/expression/boolean/OrExpr.d.ts +12 -0
- package/dist/expression/boolean/XorExpr.d.ts +12 -0
- package/dist/expression/comparison/ComparisonOp.d.ts +16 -0
- package/dist/expression/comparison/EqualsExpr.d.ts +13 -0
- package/dist/expression/comparison/GreaterThan.d.ts +7 -0
- package/dist/expression/comparison/GreaterThanOrEqual.d.ts +7 -0
- package/dist/expression/comparison/LessThan.d.ts +7 -0
- package/dist/expression/comparison/LessThanOrEqual.d.ts +7 -0
- package/dist/expression/comparison/NotEqualsExpr.d.ts +13 -0
- package/dist/expression/function/Func.d.ts +12 -6
- package/dist/expression/function/FuncArg.d.ts +4 -2
- package/dist/expression/function/FunctionExpr.d.ts +10 -8
- package/dist/expression/function/IfcExpressionFunctions.d.ts +3 -2
- package/dist/expression/function/arg/FuncArgAny.d.ts +7 -0
- package/dist/expression/function/arg/FuncArgBase.d.ts +5 -5
- package/dist/expression/function/arg/FuncArgBoolean.d.ts +10 -0
- package/dist/expression/function/arg/FuncArgInt.d.ts +4 -2
- package/dist/expression/function/arg/FuncArgMappings.d.ts +12 -0
- package/dist/expression/function/arg/FuncArgNumeric.d.ts +4 -2
- package/dist/expression/function/arg/FuncArgObjectAccessor.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgRegex.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgSimpleRegex.d.ts +7 -0
- package/dist/expression/function/arg/FuncArgString.d.ts +10 -0
- package/dist/expression/function/impl/ApplyRegex.d.ts +8 -0
- package/dist/expression/function/impl/AttributeAccessorFunction.d.ts +12 -0
- package/dist/expression/function/impl/CompareMagnitudes.d.ts +12 -0
- package/dist/expression/function/impl/EQUALS.d.ts +11 -0
- package/dist/expression/function/impl/EXISTS.d.ts +11 -0
- package/dist/expression/function/impl/FuncBooleanBinary.d.ts +12 -0
- package/dist/expression/function/impl/MAP.d.ts +5 -2
- package/dist/expression/function/impl/MatchesPattern.d.ts +9 -0
- package/dist/expression/function/impl/NOT.d.ts +10 -0
- package/dist/expression/function/impl/PROPERTY.d.ts +11 -0
- package/dist/expression/function/impl/PROPERTYSET.d.ts +12 -0
- package/dist/expression/function/impl/ROUND.d.ts +4 -2
- package/dist/expression/function/impl/ReplacePattern.d.ts +10 -0
- package/dist/expression/function/impl/SWITCH.d.ts +12 -0
- package/dist/expression/function/impl/TOSTRING.d.ts +9 -0
- package/dist/expression/function/impl/TYPE.d.ts +10 -0
- package/dist/expression/numeric/DivideExpr.d.ts +3 -0
- package/dist/expression/numeric/MinusExpr.d.ts +3 -0
- package/dist/expression/numeric/MultiplyExpr.d.ts +3 -0
- package/dist/expression/numeric/NumericLiteralExpr.d.ts +5 -1
- package/dist/expression/numeric/PlusExpr.d.ts +3 -0
- package/dist/expression/numeric/PowerExpr.d.ts +12 -0
- package/dist/expression/numeric/UnaryMinusExpr.d.ts +12 -0
- package/dist/expression/poly/PlusOrConcatExpr.d.ts +13 -0
- package/dist/expression/reference/ElemObjectReferenceExpr.d.ts +6 -4
- package/dist/expression/reference/PropObjectReferenceExpr.d.ts +6 -4
- package/dist/expression/string/StringConcatExpr.d.ts +3 -0
- package/dist/expression/string/StringLiteralExpr.d.ts +4 -1
- package/dist/expression/structure/ArrayExpr.d.ts +5 -2
- package/dist/expression/structure/ParenthesisExpr.d.ts +11 -0
- package/dist/gen/parser/IfcExpressionLexer.d.ts +12 -12
- package/dist/gen/parser/IfcExpressionListener.d.ts +172 -109
- package/dist/gen/parser/IfcExpressionParser.d.ts +172 -119
- package/dist/gen/parser/IfcExpressionVisitor.d.ts +102 -63
- package/dist/mjs/E.js +79 -0
- package/dist/mjs/E.js.map +1 -0
- package/dist/mjs/ExprVisitor.js +162 -78
- package/dist/mjs/ExprVisitor.js.map +1 -1
- package/dist/mjs/IfcExpression.js +50 -13
- package/dist/mjs/IfcExpression.js.map +1 -1
- package/dist/mjs/IfcExpressionErrorListener.js +10 -6
- package/dist/mjs/IfcExpressionErrorListener.js.map +1 -1
- package/dist/mjs/IfcExpressionUtils.js +3 -0
- package/dist/mjs/IfcExpressionUtils.js.map +1 -1
- package/dist/mjs/IfcExpressionValidationListener.js +177 -0
- package/dist/mjs/IfcExpressionValidationListener.js.map +1 -0
- package/dist/mjs/context/IfcElementAccessor.js +17 -2
- package/dist/mjs/context/IfcElementAccessor.js.map +1 -1
- package/dist/mjs/context/IfcPropertyAccessor.js +12 -1
- package/dist/mjs/context/IfcPropertyAccessor.js.map +1 -1
- package/dist/mjs/context/IfcPropertySetAccessor.js +1 -1
- package/dist/mjs/context/IfcPropertySetAccessor.js.map +1 -1
- package/dist/mjs/context/IfcRootObjectAccessor.js.map +1 -1
- package/dist/mjs/context/IfcTypeObjectAccessor.js +11 -0
- package/dist/mjs/context/IfcTypeObjectAccessor.js.map +1 -1
- package/dist/mjs/context/NamedObjectAccessor.js.map +1 -1
- package/dist/mjs/context/NopContext.js +9 -0
- package/dist/mjs/context/NopContext.js.map +1 -0
- package/dist/mjs/context/ObjectAccessor.js.map +1 -1
- package/dist/mjs/error/ExceptionToExprEvalErrorMapper.js +33 -0
- package/dist/mjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -0
- package/dist/mjs/error/ExpressionTypeError.js +7 -0
- package/dist/mjs/error/ExpressionTypeError.js.map +1 -0
- package/dist/mjs/error/IfcExpressionFunctionConfigException.js.map +1 -0
- package/dist/mjs/error/InvalidSyntaxException.js +8 -0
- package/dist/mjs/error/InvalidSyntaxException.js.map +1 -0
- package/dist/mjs/error/MissingFunctionArgumentException.js +10 -0
- package/dist/mjs/error/MissingFunctionArgumentException.js.map +1 -0
- package/dist/mjs/error/NoSuchFunctionException.js +8 -0
- package/dist/mjs/error/NoSuchFunctionException.js.map +1 -0
- package/dist/mjs/error/NoSuchMethodException.js +9 -0
- package/dist/mjs/error/NoSuchMethodException.js.map +1 -0
- package/dist/mjs/{SyntaxErrorException.js → error/SyntaxErrorException.js} +1 -1
- package/dist/mjs/error/SyntaxErrorException.js.map +1 -0
- package/dist/mjs/error/ValidationException.js +24 -0
- package/dist/mjs/error/ValidationException.js.map +1 -0
- package/dist/mjs/error/WrongFunctionArgumentTypeException.js +12 -0
- package/dist/mjs/error/WrongFunctionArgumentTypeException.js.map +1 -0
- package/dist/mjs/error/mapper/MissingFunctionArgumentExceptionMapper.js +7 -0
- package/dist/mjs/error/mapper/MissingFunctionArgumentExceptionMapper.js.map +1 -0
- package/dist/mjs/error/mapper/NoSuchFunctionExceptionMapper.js +11 -0
- package/dist/mjs/error/mapper/NoSuchFunctionExceptionMapper.js.map +1 -0
- package/dist/mjs/error/mapper/SyntaxErrorMapper.js +7 -0
- package/dist/mjs/error/mapper/SyntaxErrorMapper.js.map +1 -0
- package/dist/mjs/error/mapper/ValidationExceptionMapper.js +16 -0
- package/dist/mjs/error/mapper/ValidationExceptionMapper.js.map +1 -0
- package/dist/mjs/error/mapper/WrongFunctionArgumentTypeExceptionMapper.js +7 -0
- package/dist/mjs/error/mapper/WrongFunctionArgumentTypeExceptionMapper.js.map +1 -0
- package/dist/mjs/expression/Expr.js.map +1 -1
- package/dist/mjs/expression/ExprBase.js.map +1 -1
- package/dist/mjs/expression/ExprEvalResult.js +60 -25
- package/dist/mjs/expression/ExprEvalResult.js.map +1 -1
- package/dist/mjs/expression/ExprKind.js +17 -0
- package/dist/mjs/expression/ExprKind.js.map +1 -1
- package/dist/mjs/expression/boolean/AndExpr.js +19 -0
- package/dist/mjs/expression/boolean/AndExpr.js.map +1 -0
- package/dist/mjs/expression/boolean/BooleanLiteralExpr.js +19 -0
- package/dist/mjs/expression/boolean/BooleanLiteralExpr.js.map +1 -0
- package/dist/mjs/expression/boolean/NotExpr.js +19 -0
- package/dist/mjs/expression/boolean/NotExpr.js.map +1 -0
- package/dist/mjs/expression/boolean/OrExpr.js +19 -0
- package/dist/mjs/expression/boolean/OrExpr.js.map +1 -0
- package/dist/mjs/expression/boolean/XorExpr.js +21 -0
- package/dist/mjs/expression/boolean/XorExpr.js.map +1 -0
- package/dist/mjs/expression/comparison/ComparisonOp.js +19 -0
- package/dist/mjs/expression/comparison/ComparisonOp.js.map +1 -0
- package/dist/mjs/expression/comparison/EqualsExpr.js +19 -0
- package/dist/mjs/expression/comparison/EqualsExpr.js.map +1 -0
- package/dist/mjs/expression/comparison/GreaterThan.js +8 -0
- package/dist/mjs/expression/comparison/GreaterThan.js.map +1 -0
- package/dist/mjs/expression/comparison/GreaterThanOrEqual.js +8 -0
- package/dist/mjs/expression/comparison/GreaterThanOrEqual.js.map +1 -0
- package/dist/mjs/expression/comparison/LessThan.js +8 -0
- package/dist/mjs/expression/comparison/LessThan.js.map +1 -0
- package/dist/mjs/expression/comparison/LessThanOrEqual.js +8 -0
- package/dist/mjs/expression/comparison/LessThanOrEqual.js.map +1 -0
- package/dist/mjs/expression/comparison/NotEqualsExpr.js +19 -0
- package/dist/mjs/expression/comparison/NotEqualsExpr.js.map +1 -0
- package/dist/mjs/expression/function/Func.js +31 -3
- package/dist/mjs/expression/function/Func.js.map +1 -1
- package/dist/mjs/expression/function/FuncArg.js +4 -0
- package/dist/mjs/expression/function/FuncArg.js.map +1 -1
- package/dist/mjs/expression/function/FunctionExpr.js +13 -5
- package/dist/mjs/expression/function/FunctionExpr.js.map +1 -1
- package/dist/mjs/expression/function/IfcExpressionFunctions.js +64 -6
- package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgAny.js +11 -0
- package/dist/mjs/expression/function/arg/FuncArgAny.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgBase.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgBoolean.js +21 -0
- package/dist/mjs/expression/function/arg/FuncArgBoolean.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgInt.js +4 -0
- package/dist/mjs/expression/function/arg/FuncArgInt.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgMappings.js +41 -0
- package/dist/mjs/expression/function/arg/FuncArgMappings.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgNumeric.js +4 -0
- package/dist/mjs/expression/function/arg/FuncArgNumeric.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgObjectAccessor.js +27 -0
- package/dist/mjs/expression/function/arg/FuncArgObjectAccessor.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgRegex.js +24 -0
- package/dist/mjs/expression/function/arg/FuncArgRegex.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgSimpleRegex.js +16 -0
- package/dist/mjs/expression/function/arg/FuncArgSimpleRegex.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgString.js +21 -0
- package/dist/mjs/expression/function/arg/FuncArgString.js.map +1 -0
- package/dist/mjs/expression/function/impl/ApplyRegex.js +22 -0
- package/dist/mjs/expression/function/impl/ApplyRegex.js.map +1 -0
- package/dist/mjs/expression/function/impl/AttributeAccessorFunction.js +23 -0
- package/dist/mjs/expression/function/impl/AttributeAccessorFunction.js.map +1 -0
- package/dist/mjs/expression/function/impl/CompareMagnitudes.js +35 -0
- package/dist/mjs/expression/function/impl/CompareMagnitudes.js.map +1 -0
- package/dist/mjs/expression/function/impl/EQUALS.js +24 -0
- package/dist/mjs/expression/function/impl/EQUALS.js.map +1 -0
- package/dist/mjs/expression/function/impl/EXISTS.js +39 -0
- package/dist/mjs/expression/function/impl/EXISTS.js.map +1 -0
- package/dist/mjs/expression/function/impl/FuncBooleanBinary.js +25 -0
- package/dist/mjs/expression/function/impl/FuncBooleanBinary.js.map +1 -0
- package/dist/mjs/expression/function/impl/MAP.js +38 -49
- package/dist/mjs/expression/function/impl/MAP.js.map +1 -1
- package/dist/mjs/expression/function/impl/MatchesPattern.js +34 -0
- package/dist/mjs/expression/function/impl/MatchesPattern.js.map +1 -0
- package/dist/mjs/expression/function/impl/NOT.js +19 -0
- package/dist/mjs/expression/function/impl/NOT.js.map +1 -0
- package/dist/mjs/expression/function/impl/PROPERTY.js +47 -0
- package/dist/mjs/expression/function/impl/PROPERTY.js.map +1 -0
- package/dist/mjs/expression/function/impl/PROPERTYSET.js +66 -0
- package/dist/mjs/expression/function/impl/PROPERTYSET.js.map +1 -0
- package/dist/mjs/expression/function/impl/ROUND.js +4 -0
- package/dist/mjs/expression/function/impl/ROUND.js.map +1 -1
- package/dist/mjs/expression/function/impl/ReplacePattern.js +36 -0
- package/dist/mjs/expression/function/impl/ReplacePattern.js.map +1 -0
- package/dist/mjs/expression/function/impl/SWITCH.js +61 -0
- package/dist/mjs/expression/function/impl/SWITCH.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOSTRING.js +17 -0
- package/dist/mjs/expression/function/impl/TOSTRING.js.map +1 -0
- package/dist/mjs/expression/function/impl/TYPE.js +33 -0
- package/dist/mjs/expression/function/impl/TYPE.js.map +1 -0
- package/dist/mjs/expression/numeric/DivideExpr.js +7 -0
- package/dist/mjs/expression/numeric/DivideExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/MinusExpr.js +7 -0
- package/dist/mjs/expression/numeric/MinusExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/MultiplyExpr.js +7 -0
- package/dist/mjs/expression/numeric/MultiplyExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/NumericLiteralExpr.js +9 -1
- package/dist/mjs/expression/numeric/NumericLiteralExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/PlusExpr.js +7 -0
- package/dist/mjs/expression/numeric/PlusExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/PowerExpr.js +19 -0
- package/dist/mjs/expression/numeric/PowerExpr.js.map +1 -0
- package/dist/mjs/expression/numeric/UnaryMinusExpr.js +19 -0
- package/dist/mjs/expression/numeric/UnaryMinusExpr.js.map +1 -0
- package/dist/mjs/expression/poly/PlusOrConcatExpr.js +33 -0
- package/dist/mjs/expression/poly/PlusOrConcatExpr.js.map +1 -0
- package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js +9 -1
- package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/reference/PropObjectReferenceExpr.js +9 -1
- package/dist/mjs/expression/reference/PropObjectReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/string/StringConcatExpr.js +7 -0
- package/dist/mjs/expression/string/StringConcatExpr.js.map +1 -1
- package/dist/mjs/expression/string/StringLiteralExpr.js +9 -1
- package/dist/mjs/expression/string/StringLiteralExpr.js.map +1 -1
- package/dist/mjs/expression/structure/ArrayExpr.js +7 -0
- package/dist/mjs/expression/structure/ArrayExpr.js.map +1 -1
- package/dist/mjs/expression/structure/ParenthesisExpr.js +17 -0
- package/dist/mjs/expression/structure/ParenthesisExpr.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionLexer.js +84 -87
- package/dist/mjs/gen/parser/IfcExpressionLexer.js.map +1 -1
- package/dist/mjs/gen/parser/IfcExpressionListener.js.map +1 -1
- package/dist/mjs/gen/parser/IfcExpressionParser.js +760 -654
- package/dist/mjs/gen/parser/IfcExpressionParser.js.map +1 -1
- package/dist/mjs/gen/parser/IfcExpressionVisitor.js.map +1 -1
- package/dist/mjs/type/ArrayType.js +65 -0
- package/dist/mjs/type/ArrayType.js.map +1 -0
- package/dist/mjs/type/ExprType.js +2 -0
- package/dist/mjs/type/ExprType.js.map +1 -0
- package/dist/mjs/type/SimpleType.js +42 -0
- package/dist/mjs/type/SimpleType.js.map +1 -0
- package/dist/mjs/type/TupleType.js +96 -0
- package/dist/mjs/type/TupleType.js.map +1 -0
- package/dist/mjs/type/TypeDisjunction.js +60 -0
- package/dist/mjs/type/TypeDisjunction.js.map +1 -0
- package/dist/mjs/type/TypeManager.js +59 -0
- package/dist/mjs/type/TypeManager.js.map +1 -0
- package/dist/mjs/type/Types.js +86 -0
- package/dist/mjs/type/Types.js.map +1 -0
- package/dist/mjs/value/ArrayValue.js +18 -0
- package/dist/mjs/value/ArrayValue.js.map +1 -1
- package/dist/mjs/value/BooleanValue.js +10 -0
- package/dist/mjs/value/BooleanValue.js.map +1 -1
- package/dist/mjs/value/BoxedValueTypes.js +2 -0
- package/dist/mjs/value/BoxedValueTypes.js.map +1 -0
- package/dist/mjs/value/Comparable.js +5 -0
- package/dist/mjs/value/Comparable.js.map +1 -0
- package/dist/mjs/value/ExpressionValue.js +2 -0
- package/dist/mjs/value/ExpressionValue.js.map +1 -0
- package/dist/mjs/value/LogicalValue.js +11 -0
- package/dist/mjs/value/LogicalValue.js.map +1 -1
- package/dist/mjs/value/NumericValue.js +10 -0
- package/dist/mjs/value/NumericValue.js.map +1 -1
- package/dist/mjs/value/ObjectAccessorValue.js +28 -0
- package/dist/mjs/value/ObjectAccessorValue.js.map +1 -0
- package/dist/mjs/value/ReferenceValue.js +7 -0
- package/dist/mjs/value/ReferenceValue.js.map +1 -1
- package/dist/mjs/value/StringValue.js +11 -0
- package/dist/mjs/value/StringValue.js.map +1 -1
- package/dist/mjs/value/Value.js.map +1 -1
- package/dist/type/ArrayType.d.ts +12 -0
- package/dist/type/ExprType.d.ts +8 -0
- package/dist/type/SimpleType.d.ts +12 -0
- package/dist/type/TupleType.d.ts +15 -0
- package/dist/type/TypeDisjunction.d.ts +12 -0
- package/dist/type/TypeManager.d.ts +21 -0
- package/dist/type/Types.d.ts +41 -0
- package/dist/value/ArrayValue.d.ts +3 -0
- package/dist/value/BooleanValue.d.ts +6 -1
- package/dist/value/BoxedValueTypes.d.ts +3 -0
- package/dist/value/Comparable.d.ts +4 -0
- package/dist/value/{LiteralValue.d.ts → ExpressionValue.d.ts} +2 -1
- package/dist/value/LogicalValue.d.ts +3 -0
- package/dist/value/NumericValue.d.ts +6 -1
- package/dist/value/ObjectAccessorValue.d.ts +13 -0
- package/dist/value/ReferenceValue.d.ts +3 -0
- package/dist/value/StringValue.d.ts +7 -1
- package/dist/value/Value.d.ts +5 -2
- package/package.json +1 -1
- package/dist/cjs/SyntaxErrorException.js.map +0 -1
- package/dist/cjs/expression/function/IfcExpressionFunctionConfigException.js.map +0 -1
- package/dist/cjs/expression/numeric/NumParenthesisExpr.js +0 -15
- package/dist/cjs/expression/numeric/NumParenthesisExpr.js.map +0 -1
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js +0 -30
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js.map +0 -1
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js +0 -28
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js.map +0 -1
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js +0 -40
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js.map +0 -1
- package/dist/cjs/expression/reference/ObjectReferenceExpr.js.map +0 -1
- package/dist/cjs/value/LiteralValue.js.map +0 -1
- package/dist/cjs/value/LiteralValueAnyArity.js +0 -3
- package/dist/cjs/value/LiteralValueAnyArity.js.map +0 -1
- package/dist/cjs/value/PrimitiveValueType.js.map +0 -1
- package/dist/expression/numeric/NumParenthesisExpr.d.ts +0 -8
- package/dist/expression/reference/AttributeReferenceExpr.d.ts +0 -13
- package/dist/expression/reference/NestedObjectChainEndExpr.d.ts +0 -9
- package/dist/expression/reference/NestedObjectChainExpr.d.ts +0 -12
- package/dist/expression/reference/ObjectReferenceExpr.d.ts +0 -4
- package/dist/mjs/SyntaxErrorException.js.map +0 -1
- package/dist/mjs/expression/function/IfcExpressionFunctionConfigException.js.map +0 -1
- package/dist/mjs/expression/numeric/NumParenthesisExpr.js +0 -11
- package/dist/mjs/expression/numeric/NumParenthesisExpr.js.map +0 -1
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js +0 -26
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js.map +0 -1
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js +0 -24
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js.map +0 -1
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js +0 -36
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js.map +0 -1
- package/dist/mjs/expression/reference/ObjectReferenceExpr.js +0 -2
- package/dist/mjs/expression/reference/ObjectReferenceExpr.js.map +0 -1
- package/dist/mjs/value/LiteralValue.js +0 -2
- package/dist/mjs/value/LiteralValue.js.map +0 -1
- package/dist/mjs/value/LiteralValueAnyArity.js +0 -2
- package/dist/mjs/value/LiteralValueAnyArity.js.map +0 -1
- package/dist/mjs/value/PrimitiveValueType.js +0 -2
- package/dist/mjs/value/PrimitiveValueType.js.map +0 -1
- package/dist/value/LiteralValueAnyArity.d.ts +0 -2
- package/dist/value/PrimitiveValueType.d.ts +0 -2
- /package/dist/cjs/{expression/function → error}/IfcExpressionFunctionConfigException.js +0 -0
- /package/dist/{expression/function → error}/IfcExpressionFunctionConfigException.d.ts +0 -0
- /package/dist/mjs/{expression/function → error}/IfcExpressionFunctionConfigException.js +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FuncArgMappings = void 0;
|
|
4
|
+
const FuncArg_js_1 = require("../FuncArg.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const ArrayValue_js_1 = require("../../../value/ArrayValue.js");
|
|
7
|
+
const ExprKind_js_1 = require("../../ExprKind.js");
|
|
8
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
9
|
+
class FuncArgMappings extends FuncArg_js_1.FuncArg {
|
|
10
|
+
constructor(required, name) {
|
|
11
|
+
super(required, name);
|
|
12
|
+
}
|
|
13
|
+
getType() {
|
|
14
|
+
return Types_js_1.Types.array(Types_js_1.Types.tuple(Types_js_1.Type.ANY, Types_js_1.Type.ANY));
|
|
15
|
+
}
|
|
16
|
+
transformValue(invocationValue) {
|
|
17
|
+
if ((0, ExprEvalResult_js_1.isExprEvalSuccess)(invocationValue)) {
|
|
18
|
+
const mappings = invocationValue.result;
|
|
19
|
+
if (!Array.isArray(mappings.getValue())) {
|
|
20
|
+
return FuncArgMappings.makeError(mappings, "The value is not an array");
|
|
21
|
+
}
|
|
22
|
+
const arr = mappings.getValue();
|
|
23
|
+
if (arr.length === 0) {
|
|
24
|
+
return FuncArgMappings.makeError(mappings, "The mappings array is empty");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return invocationValue;
|
|
28
|
+
}
|
|
29
|
+
static checkSingleMapping(mappings, index) {
|
|
30
|
+
const element = mappings[index];
|
|
31
|
+
if (!ArrayValue_js_1.ArrayValue.isArrayValueType(element)) {
|
|
32
|
+
return FuncArgMappings.makeError(element, `The element at 0-based position${index} is not an array: ${JSON.stringify(element)}`);
|
|
33
|
+
}
|
|
34
|
+
const pair = element.getValue();
|
|
35
|
+
if (pair.length !== 2) {
|
|
36
|
+
return FuncArgMappings.makeError(element, `The array at 0-based position ${index} must be of length 2 but is of length ${pair.length}`);
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
static makeError(mappings, problem) {
|
|
41
|
+
return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} must be an array containing two arrays of the same length (i.e., a 2xn matrix: 2 rows, N columns). Problem: ${problem}.`, mappings);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.FuncArgMappings = FuncArgMappings;
|
|
45
|
+
//# sourceMappingURL=FuncArgMappings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/arg/FuncArgMappings.ts"],"names":[],"mappings":";;;AAAA,8CAAwC;AACxC,+DAKiC;AAEjC,gEAA0D;AAC1D,mDAA6C;AAC7C,qDAAqD;AAGrD,MAAa,eAAgB,SAAQ,oBAAY;IAC/C,YAAY,QAAiB,EAAE,IAAY;QACzC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACL,OAAO,gBAAK,CAAC,KAAK,CAAC,gBAAK,CAAC,KAAK,CAAC,eAAI,CAAC,GAAG,EAAE,eAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,cAAc,CACZ,eAAgD;QAEhD,IAAI,IAAA,qCAAiB,EAAC,eAAe,CAAC,EAAE;YACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAoB,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACvC,OAAO,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;aACzE;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;gBACpB,OAAO,eAAe,CAAC,SAAS,CAC9B,QAAQ,EACR,6BAA6B,CAC9B,CAAC;aACH;SACF;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAC9B,QAA2B,EAC3B,KAAa;QAEb,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,0BAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE;YACzC,OAAO,eAAe,CAAC,SAAS,CAC9B,OAAO,EACP,kCAAkC,KAAK,qBAAqB,IAAI,CAAC,SAAS,CACxE,OAAO,CACR,EAAE,CACJ,CAAC;SACH;QACD,MAAM,IAAI,GAAI,OAAiC,CAAC,QAAQ,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,eAAe,CAAC,SAAS,CAC9B,OAAO,EACP,iCAAiC,KAAK,yCAAyC,IAAI,CAAC,MAAM,EAAE,CAC7F,CAAC;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,QAAyB,EAAE,OAAe;QACjE,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,gHAAgH,OAAO,GAAG,EAC/I,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AA1DD,0CA0DC","file":"expression/function/arg/FuncArgMappings.js","sourcesContent":["import { FuncArg } from \"../FuncArg.js\";\nimport {\n ExprEvalError,\n ExprEvalResult,\n ExprEvalTypeErrorObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ArrayValue } from \"../../../value/ArrayValue.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\n\nexport class FuncArgMappings extends FuncArg<any> {\n constructor(required: boolean, name: string) {\n super(required, name);\n }\n\n getType(): ExprType {\n return Types.array(Types.tuple(Type.ANY, Type.ANY));\n }\n\n transformValue(\n invocationValue: ExprEvalResult<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n if (isExprEvalSuccess(invocationValue)) {\n const mappings = invocationValue.result as ArrayValue;\n if (!Array.isArray(mappings.getValue())) {\n return FuncArgMappings.makeError(mappings, \"The value is not an array\");\n }\n const arr = mappings.getValue();\n if (arr.length === 0) {\n return FuncArgMappings.makeError(\n mappings,\n \"The mappings array is empty\"\n );\n }\n }\n return invocationValue;\n }\n\n public static checkSingleMapping(\n mappings: Array<ArrayValue>,\n index: number\n ): ExprEvalError | undefined {\n const element = mappings[index];\n if (!ArrayValue.isArrayValueType(element)) {\n return FuncArgMappings.makeError(\n element,\n `The element at 0-based position${index} is not an array: ${JSON.stringify(\n element\n )}`\n );\n }\n const pair = (element as unknown as ArrayValue).getValue();\n if (pair.length !== 2) {\n return FuncArgMappings.makeError(\n element,\n `The array at 0-based position ${index} must be of length 2 but is of length ${pair.length}`\n );\n }\n return undefined;\n }\n\n private static makeError(mappings: ExpressionValue, problem: string) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} must be an array containing two arrays of the same length (i.e., a 2xn matrix: 2 rows, N columns). Problem: ${problem}.`,\n mappings\n );\n }\n}\n"]}
|
|
@@ -5,10 +5,14 @@ const FuncArgBase_js_1 = require("./FuncArgBase.js");
|
|
|
5
5
|
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
6
|
const ExprKind_js_1 = require("../../ExprKind.js");
|
|
7
7
|
const decimal_js_1 = require("decimal.js");
|
|
8
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
8
9
|
class FuncArgNumeric extends FuncArgBase_js_1.FuncArgBase {
|
|
9
10
|
constructor(required, name, defaultValue) {
|
|
10
11
|
super(required, name, defaultValue);
|
|
11
12
|
}
|
|
13
|
+
getType() {
|
|
14
|
+
return Types_js_1.Type.NUMERIC;
|
|
15
|
+
}
|
|
12
16
|
transformForTypeCheck(invocationValue) {
|
|
13
17
|
const result = invocationValue.result;
|
|
14
18
|
const value = result.getValue();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/arg/FuncArgNumeric.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAE/C,+DAIiC;AACjC,mDAA6C;AAE7C,2CAAqC;
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/arg/FuncArgNumeric.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAE/C,+DAIiC;AACjC,mDAA6C;AAE7C,2CAAqC;AACrC,qDAA8C;AAG9C,MAAa,cAAe,SAAQ,4BAAyB;IAC3D,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA2B;QACtE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAES,qBAAqB,CAC7B,eAAiD;QAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,oBAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,8BAA8B,IAAI,CAAC,SAAS,CAC/D,KAAK,CACN,EAAE,EACH,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AAzBD,wCAyBC","file":"expression/function/arg/FuncArgNumeric.js","sourcesContent":["import { FuncArgBase } from \"./FuncArgBase.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { NumericValue } from \"../../../value/NumericValue.js\";\nimport { Decimal } from \"decimal.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\n\nexport class FuncArgNumeric extends FuncArgBase<NumericValue> {\n constructor(required: boolean, name: string, defaultValue?: NumericValue) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Type.NUMERIC;\n }\n\n protected transformForTypeCheck(\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const result = invocationValue.result;\n const value = result.getValue();\n if (Decimal.isDecimal(value)) {\n return invocationValue;\n }\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} must be a number, but was ${JSON.stringify(\n value\n )}`,\n value\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FuncArgObjectAccessor = void 0;
|
|
4
|
+
const FuncArgBase_js_1 = require("./FuncArgBase.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const ExprKind_js_1 = require("../../ExprKind.js");
|
|
7
|
+
const ObjectAccessor_js_1 = require("../../../context/ObjectAccessor.js");
|
|
8
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
9
|
+
const IfcExpressionFunctionConfigException_js_1 = require("../../../error/IfcExpressionFunctionConfigException.js");
|
|
10
|
+
class FuncArgObjectAccessor extends FuncArgBase_js_1.FuncArgBase {
|
|
11
|
+
constructor(required, name, specificType, defaultValue) {
|
|
12
|
+
super(required, name, defaultValue);
|
|
13
|
+
if (!Types_js_1.Type.IFC_OBJECT_REF.isAssignableFrom(specificType)) {
|
|
14
|
+
throw new IfcExpressionFunctionConfigException_js_1.IfcExpressionFunctionConfigException(`${Types_js_1.Type.IFC_OBJECT_REF.getName()} is not assignable from provided object accessor type ${specificType.getName()}`);
|
|
15
|
+
}
|
|
16
|
+
this.type = specificType;
|
|
17
|
+
}
|
|
18
|
+
getType() {
|
|
19
|
+
return this.type;
|
|
20
|
+
}
|
|
21
|
+
transformForTypeCheck(invocationValue) {
|
|
22
|
+
const result = invocationValue.result;
|
|
23
|
+
const value = result.getValue();
|
|
24
|
+
if ((0, ObjectAccessor_js_1.isObjectAccessor)(value)) {
|
|
25
|
+
return invocationValue;
|
|
26
|
+
}
|
|
27
|
+
return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} must be an ObjectAccessor, but was ${JSON.stringify(value)}`, value);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.FuncArgObjectAccessor = FuncArgObjectAccessor;
|
|
31
|
+
//# sourceMappingURL=FuncArgObjectAccessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/arg/FuncArgObjectAccessor.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAE/C,+DAIiC;AACjC,mDAA6C;AAE7C,0EAAsE;AACtE,qDAA8C;AAE9C,oHAA8G;AAE9G,MAAa,qBAAsB,SAAQ,4BAAgC;IAEzE,YACE,QAAiB,EACjB,IAAY,EACZ,YAAsB,EACtB,YAAkC;QAElC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,eAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE;YACvD,MAAM,IAAI,8EAAoC,CAC5C,GAAG,eAAI,CAAC,cAAc,CAAC,OAAO,EAAE,yDAAyD,YAAY,CAAC,OAAO,EAAE,EAAE,CAClH,CAAC;SACH;QACD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAES,qBAAqB,CAC7B,eAAiD;QAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,IAAA,oCAAgB,EAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,CAAC,kBAAkB,EAC3B,YACE,IAAI,CAAC,IACP,uCAAuC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAC9D,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AArCD,sDAqCC","file":"expression/function/arg/FuncArgObjectAccessor.js","sourcesContent":["import { FuncArgBase } from \"./FuncArgBase.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { ObjectAccessorValue } from \"../../../value/ObjectAccessorValue.js\";\nimport { isObjectAccessor } from \"../../../context/ObjectAccessor.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { IfcExpressionFunctionConfigException } from \"../../../error/IfcExpressionFunctionConfigException.js\";\n\nexport class FuncArgObjectAccessor extends FuncArgBase<ObjectAccessorValue> {\n private readonly type: ExprType;\n constructor(\n required: boolean,\n name: string,\n specificType: ExprType,\n defaultValue?: ObjectAccessorValue\n ) {\n super(required, name, defaultValue);\n if (!Type.IFC_OBJECT_REF.isAssignableFrom(specificType)) {\n throw new IfcExpressionFunctionConfigException(\n `${Type.IFC_OBJECT_REF.getName()} is not assignable from provided object accessor type ${specificType.getName()}`\n );\n }\n this.type = specificType;\n }\n\n getType(): ExprType {\n return this.type;\n }\n\n protected transformForTypeCheck(\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const result = invocationValue.result;\n const value = result.getValue();\n if (isObjectAccessor(value)) {\n return invocationValue;\n }\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${\n this.name\n } must be an ObjectAccessor, but was ${JSON.stringify(value)}`,\n value\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FuncArgRegex = void 0;
|
|
4
|
+
const FuncArgBase_js_1 = require("./FuncArgBase.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const ExprKind_js_1 = require("../../ExprKind.js");
|
|
7
|
+
const StringValue_js_1 = require("../../../value/StringValue.js");
|
|
8
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
9
|
+
class FuncArgRegex extends FuncArgBase_js_1.FuncArgBase {
|
|
10
|
+
constructor(required, name, defaultValue) {
|
|
11
|
+
super(required, name, defaultValue);
|
|
12
|
+
}
|
|
13
|
+
getType() {
|
|
14
|
+
return Types_js_1.Type.STRING;
|
|
15
|
+
}
|
|
16
|
+
transformForTypeCheck(invocationValue) {
|
|
17
|
+
const result = invocationValue.result;
|
|
18
|
+
if (result instanceof StringValue_js_1.StringValue) {
|
|
19
|
+
return this.toRegexString(result);
|
|
20
|
+
}
|
|
21
|
+
return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} must be a string, but was ${JSON.stringify(result)}`, result);
|
|
22
|
+
}
|
|
23
|
+
toRegexString(patternString) {
|
|
24
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(patternString);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.FuncArgRegex = FuncArgRegex;
|
|
28
|
+
//# sourceMappingURL=FuncArgRegex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/arg/FuncArgRegex.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAE/C,+DAKiC;AACjC,mDAA6C;AAC7C,kEAA4D;AAC5D,qDAA8C;AAG9C,MAAa,YAAa,SAAQ,4BAAwB;IACxD,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,eAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,qBAAqB,CAC7B,eAAiD;QAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,IAAI,MAAM,YAAY,4BAAW,EAAE;YACjC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SACnC;QACD,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,8BAA8B,IAAI,CAAC,SAAS,CAC/D,MAAM,CACP,EAAE,EACH,MAAM,CACP,CAAC;IACJ,CAAC;IAES,aAAa,CACrB,aAA0B;QAE1B,OAAO,IAAI,sCAAkB,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;CACF;AA9BD,oCA8BC","file":"expression/function/arg/FuncArgRegex.js","sourcesContent":["import { FuncArgBase } from \"./FuncArgBase.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalSuccessObj,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\n\nexport class FuncArgRegex extends FuncArgBase<StringValue> {\n constructor(required: boolean, name: string, defaultValue?: StringValue) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Type.STRING;\n }\n\n protected transformForTypeCheck(\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const result = invocationValue.result;\n if (result instanceof StringValue) {\n return this.toRegexString(result);\n }\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} must be a string, but was ${JSON.stringify(\n result\n )}`,\n result\n );\n }\n\n protected toRegexString(\n patternString: StringValue\n ): ExprEvalResult<StringValue> {\n return new ExprEvalSuccessObj(patternString);\n }\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FuncArgSimpleRegex = void 0;
|
|
4
|
+
const FuncArgRegex_js_1 = require("./FuncArgRegex.js");
|
|
5
|
+
const StringValue_js_1 = require("../../../value/StringValue.js");
|
|
6
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
7
|
+
class FuncArgSimpleRegex extends FuncArgRegex_js_1.FuncArgRegex {
|
|
8
|
+
constructor(required, name, defaultValue) {
|
|
9
|
+
super(required, name, defaultValue);
|
|
10
|
+
}
|
|
11
|
+
toRegexString(patternString) {
|
|
12
|
+
const pattern = patternString.getValue();
|
|
13
|
+
const transformedPattern = pattern
|
|
14
|
+
.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&") // escape all js REGEX special chars
|
|
15
|
+
.replaceAll(/\\\*/g, ".*");
|
|
16
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(StringValue_js_1.StringValue.of(transformedPattern));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.FuncArgSimpleRegex = FuncArgSimpleRegex;
|
|
20
|
+
//# sourceMappingURL=FuncArgSimpleRegex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/arg/FuncArgSimpleRegex.ts"],"names":[],"mappings":";;;AAAA,uDAAiD;AACjD,kEAA4D;AAC5D,+DAA6E;AAE7E,MAAa,kBAAmB,SAAQ,8BAAY;IAClD,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAES,aAAa,CACrB,aAA0B;QAE1B,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,kBAAkB,GAAG,OAAO;aAC/B,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,oCAAoC;aAC5E,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,sCAAkB,CAAC,4BAAW,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AAdD,gDAcC","file":"expression/function/arg/FuncArgSimpleRegex.js","sourcesContent":["import { FuncArgRegex } from \"./FuncArgRegex.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\n\nexport class FuncArgSimpleRegex extends FuncArgRegex {\n constructor(required: boolean, name: string, defaultValue?: StringValue) {\n super(required, name, defaultValue);\n }\n\n protected toRegexString(\n patternString: StringValue\n ): ExprEvalResult<StringValue> {\n const pattern = patternString.getValue();\n const transformedPattern = pattern\n .replace(/[.?*+^$[\\]\\\\(){}|-]/g, \"\\\\$&\") // escape all js REGEX special chars\n .replaceAll(/\\\\\\*/g, \".*\");\n return new ExprEvalSuccessObj(StringValue.of(transformedPattern));\n }\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FuncArgString = void 0;
|
|
4
|
+
const FuncArgBase_js_1 = require("./FuncArgBase.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const ExprKind_js_1 = require("../../ExprKind.js");
|
|
7
|
+
const StringValue_js_1 = require("../../../value/StringValue.js");
|
|
8
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
9
|
+
class FuncArgString extends FuncArgBase_js_1.FuncArgBase {
|
|
10
|
+
constructor(required, name, defaultValue) {
|
|
11
|
+
super(required, name, defaultValue);
|
|
12
|
+
}
|
|
13
|
+
getType() {
|
|
14
|
+
return Types_js_1.Type.STRING;
|
|
15
|
+
}
|
|
16
|
+
transformForTypeCheck(invocationValue) {
|
|
17
|
+
const result = invocationValue.result;
|
|
18
|
+
if (StringValue_js_1.StringValue.isStringValueType(result)) {
|
|
19
|
+
return invocationValue;
|
|
20
|
+
}
|
|
21
|
+
return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} must be a string, but was ${JSON.stringify(result)}`, result);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.FuncArgString = FuncArgString;
|
|
25
|
+
//# sourceMappingURL=FuncArgString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/arg/FuncArgString.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAE/C,+DAIiC;AACjC,mDAA6C;AAC7C,kEAA4D;AAC5D,qDAA8C;AAG9C,MAAa,aAAc,SAAQ,4BAAwB;IACzD,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,eAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,qBAAqB,CAC7B,eAAiD;QAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,IAAI,4BAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;YACzC,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,8BAA8B,IAAI,CAAC,SAAS,CAC/D,MAAM,CACP,EAAE,EACH,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AAxBD,sCAwBC","file":"expression/function/arg/FuncArgString.js","sourcesContent":["import { FuncArgBase } from \"./FuncArgBase.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\n\nexport class FuncArgString extends FuncArgBase<StringValue> {\n constructor(required: boolean, name: string, defaultValue?: StringValue) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Type.STRING;\n }\n\n protected transformForTypeCheck(\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const result = invocationValue.result;\n if (StringValue.isStringValueType(result)) {\n return invocationValue;\n }\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} must be a string, but was ${JSON.stringify(\n result\n )}`,\n result\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplyRegex = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const FuncArgString_js_1 = require("../arg/FuncArgString.js");
|
|
6
|
+
const FuncArgSimpleRegex_js_1 = require("../arg/FuncArgSimpleRegex.js");
|
|
7
|
+
const FuncArgRegex_js_1 = require("../arg/FuncArgRegex.js");
|
|
8
|
+
const FuncArgBoolean_js_1 = require("../arg/FuncArgBoolean.js");
|
|
9
|
+
const BooleanValue_js_1 = require("../../../value/BooleanValue.js");
|
|
10
|
+
class ApplyRegex extends Func_js_1.Func {
|
|
11
|
+
constructor(name, simplePattern, requireFullMatch) {
|
|
12
|
+
super(name, [
|
|
13
|
+
new FuncArgString_js_1.FuncArgString(true, ApplyRegex.KEY_INPUT),
|
|
14
|
+
simplePattern
|
|
15
|
+
? new FuncArgSimpleRegex_js_1.FuncArgSimpleRegex(true, ApplyRegex.KEY_PATTERN)
|
|
16
|
+
: new FuncArgRegex_js_1.FuncArgRegex(true, ApplyRegex.KEY_PATTERN),
|
|
17
|
+
new FuncArgBoolean_js_1.FuncArgBoolean(false, ApplyRegex.KEY_CASE_INSENSITIVE, BooleanValue_js_1.BooleanValue.of(false)),
|
|
18
|
+
]);
|
|
19
|
+
this.requireFullMatch = requireFullMatch;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ApplyRegex = ApplyRegex;
|
|
23
|
+
ApplyRegex.KEY_INPUT = "input";
|
|
24
|
+
ApplyRegex.KEY_PATTERN = "pattern";
|
|
25
|
+
ApplyRegex.KEY_CASE_INSENSITIVE = "caseInsensitive";
|
|
26
|
+
//# sourceMappingURL=ApplyRegex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/ApplyRegex.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,8DAAwD;AACxD,wEAAkE;AAClE,4DAAsD;AACtD,gEAA0D;AAC1D,oEAA8D;AAE9D,MAAsB,UAAW,SAAQ,cAAI;IAO3C,YACE,IAAY,EACZ,aAAsB,EACtB,gBAAyB;QAEzB,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,gCAAa,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;YAC7C,aAAa;gBACX,CAAC,CAAC,IAAI,0CAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;gBACtD,CAAC,CAAC,IAAI,8BAAY,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;YAClD,IAAI,kCAAc,CAChB,KAAK,EACL,UAAU,CAAC,oBAAoB,EAC/B,8BAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CACvB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;;AAxBH,gCAyBC;AAxB2B,oBAAS,GAAG,OAAO,CAAC;AACpB,sBAAW,GAAG,SAAS,CAAC;AACxB,+BAAoB,GAAG,iBAAiB,CAAC","file":"expression/function/impl/ApplyRegex.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { FuncArgSimpleRegex } from \"../arg/FuncArgSimpleRegex.js\";\nimport { FuncArgRegex } from \"../arg/FuncArgRegex.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\n\nexport abstract class ApplyRegex extends Func {\n protected static readonly KEY_INPUT = \"input\";\n protected static readonly KEY_PATTERN = \"pattern\";\n protected static readonly KEY_CASE_INSENSITIVE = \"caseInsensitive\";\n\n protected readonly requireFullMatch: boolean;\n\n protected constructor(\n name: string,\n simplePattern: boolean,\n requireFullMatch: boolean\n ) {\n super(name, [\n new FuncArgString(true, ApplyRegex.KEY_INPUT),\n simplePattern\n ? new FuncArgSimpleRegex(true, ApplyRegex.KEY_PATTERN)\n : new FuncArgRegex(true, ApplyRegex.KEY_PATTERN),\n new FuncArgBoolean(\n false,\n ApplyRegex.KEY_CASE_INSENSITIVE,\n BooleanValue.of(false)\n ),\n ]);\n this.requireFullMatch = requireFullMatch;\n }\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AttributeAccessorFunction = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const FuncArg_js_1 = require("../FuncArg.js");
|
|
6
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
7
|
+
class AttributeAccessorFunction extends Func_js_1.Func {
|
|
8
|
+
constructor(attributeName, returnType) {
|
|
9
|
+
super(attributeName.toUpperCase(), [
|
|
10
|
+
new FuncArg_js_1.FuncArg(true, AttributeAccessorFunction.KEY_OBJECT_REF),
|
|
11
|
+
]);
|
|
12
|
+
this.attributeName = attributeName;
|
|
13
|
+
this.returnType = returnType;
|
|
14
|
+
}
|
|
15
|
+
getReturnType(argumentTypes) {
|
|
16
|
+
return this.returnType;
|
|
17
|
+
}
|
|
18
|
+
calculateResult(evaluatedArguments) {
|
|
19
|
+
const objectRef = evaluatedArguments
|
|
20
|
+
.get(AttributeAccessorFunction.KEY_OBJECT_REF)
|
|
21
|
+
.getValue();
|
|
22
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(objectRef.getAttribute(this.attributeName));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.AttributeAccessorFunction = AttributeAccessorFunction;
|
|
26
|
+
AttributeAccessorFunction.KEY_OBJECT_REF = "objectRef";
|
|
27
|
+
//# sourceMappingURL=AttributeAccessorFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/AttributeAccessorFunction.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,8CAAwC;AAExC,+DAA6E;AAI7E,MAAa,yBAA0B,SAAQ,cAAI;IAKjD,YAAY,aAAqB,EAAE,UAAoB;QACrD,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE;YACjC,IAAI,oBAAO,CAAS,IAAI,EAAE,yBAAyB,CAAC,cAAc,CAAC;SACpE,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAES,eAAe,CACvB,kBAAgD;QAEhD,MAAM,SAAS,GAAG,kBAAkB;aACjC,GAAG,CAAC,yBAAyB,CAAC,cAAc,CAAC;aAC7C,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,sCAAkB,CAC1B,SAA4B,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAC/D,CAAC;IACJ,CAAC;;AA1BH,8DA2BC;AAzBiB,wCAAc,GAAG,WAAW,CAAC","file":"expression/function/impl/AttributeAccessorFunction.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArg } from \"../FuncArg.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { ObjectAccessor } from \"../../../context/ObjectAccessor.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\n\nexport class AttributeAccessorFunction extends Func {\n private readonly attributeName;\n static readonly KEY_OBJECT_REF = \"objectRef\";\n private readonly returnType: ExprType;\n\n constructor(attributeName: string, returnType: ExprType) {\n super(attributeName.toUpperCase(), [\n new FuncArg<string>(true, AttributeAccessorFunction.KEY_OBJECT_REF),\n ]);\n this.attributeName = attributeName;\n this.returnType = returnType;\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return this.returnType;\n }\n\n protected calculateResult(\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const objectRef = evaluatedArguments\n .get(AttributeAccessorFunction.KEY_OBJECT_REF)\n .getValue();\n return new ExprEvalSuccessObj(\n (objectRef as ObjectAccessor).getAttribute(this.attributeName)\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CompareMagnitudes = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const FuncArgAny_js_1 = require("../arg/FuncArgAny.js");
|
|
6
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
7
|
+
const Comparable_js_1 = require("../../../value/Comparable.js");
|
|
8
|
+
const ExprKind_js_1 = require("../../ExprKind.js");
|
|
9
|
+
const BooleanValue_js_1 = require("../../../value/BooleanValue.js");
|
|
10
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
11
|
+
class CompareMagnitudes extends Func_js_1.Func {
|
|
12
|
+
constructor(name, cmp) {
|
|
13
|
+
super(name, [
|
|
14
|
+
new FuncArgAny_js_1.FuncArgAny(true, CompareMagnitudes.KEY_LEFT),
|
|
15
|
+
new FuncArgAny_js_1.FuncArgAny(true, CompareMagnitudes.KEY_RIGHT),
|
|
16
|
+
]);
|
|
17
|
+
this.comparisonFunction = cmp;
|
|
18
|
+
}
|
|
19
|
+
calculateResult(evaluatedArguments) {
|
|
20
|
+
const left = evaluatedArguments.get(CompareMagnitudes.KEY_LEFT);
|
|
21
|
+
const right = evaluatedArguments.get(CompareMagnitudes.KEY_RIGHT);
|
|
22
|
+
if (!(0, Comparable_js_1.isComparable)(left)) {
|
|
23
|
+
return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION, "Cannot compare: left value is not comparable", left);
|
|
24
|
+
}
|
|
25
|
+
if (!(0, Comparable_js_1.isComparable)(right)) {
|
|
26
|
+
return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION, "Cannot compare: right value is not comparable", right);
|
|
27
|
+
}
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
const cmpValue = this.comparisonFunction(left.compareTo(right));
|
|
30
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(BooleanValue_js_1.BooleanValue.of(cmpValue));
|
|
31
|
+
}
|
|
32
|
+
getReturnType(argumentTypes) {
|
|
33
|
+
return Types_js_1.Type.BOOLEAN;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.CompareMagnitudes = CompareMagnitudes;
|
|
37
|
+
CompareMagnitudes.KEY_LEFT = "left";
|
|
38
|
+
CompareMagnitudes.KEY_RIGHT = "right";
|
|
39
|
+
//# sourceMappingURL=CompareMagnitudes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/CompareMagnitudes.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAIiC;AACjC,gEAA4D;AAC5D,mDAA6C;AAC7C,oEAA8D;AAE9D,qDAA8C;AAE9C,MAAa,iBAAkB,SAAQ,cAAI;IAKzC,YAAY,IAAY,EAAE,GAA6B;QACrD,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,0BAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAChD,IAAI,0BAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;IAChC,CAAC;IAES,eAAe,CACvB,kBAAgD;QAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,IAAA,4BAAY,EAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,CAAC,QAAQ,EACjB,8CAA8C,EAC9C,IAAI,CACL,CAAC;SACH;QACD,IAAI,CAAC,IAAA,4BAAY,EAAC,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,CAAC,QAAQ,EACjB,+CAA+C,EAC/C,KAAK,CACN,CAAC;SACH;QACD,aAAa;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;;AAvCH,8CAwCC;AAvCyB,0BAAQ,GAAG,MAAM,CAAC;AAClB,2BAAS,GAAG,OAAO,CAAC","file":"expression/function/impl/CompareMagnitudes.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccessObj,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { isComparable } from \"../../../value/Comparable.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type } from \"../../../type/Types.js\";\n\nexport class CompareMagnitudes extends Func {\n private static readonly KEY_LEFT = \"left\";\n private static readonly KEY_RIGHT = \"right\";\n private readonly comparisonFunction: (arg: number) => boolean;\n\n constructor(name: string, cmp: (arg: number) => boolean) {\n super(name, [\n new FuncArgAny(true, CompareMagnitudes.KEY_LEFT),\n new FuncArgAny(true, CompareMagnitudes.KEY_RIGHT),\n ]);\n this.comparisonFunction = cmp;\n }\n\n protected calculateResult(\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const left = evaluatedArguments.get(CompareMagnitudes.KEY_LEFT);\n const right = evaluatedArguments.get(CompareMagnitudes.KEY_RIGHT);\n if (!isComparable(left)) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION,\n \"Cannot compare: left value is not comparable\",\n left\n );\n }\n if (!isComparable(right)) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION,\n \"Cannot compare: right value is not comparable\",\n right\n );\n }\n // @ts-ignore\n const cmpValue = this.comparisonFunction(left.compareTo(right));\n return new ExprEvalSuccessObj(BooleanValue.of(cmpValue));\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.BOOLEAN;\n }\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EQUALS = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const FuncArgAny_js_1 = require("../arg/FuncArgAny.js");
|
|
6
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
7
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
8
|
+
const BooleanValue_js_1 = require("../../../value/BooleanValue.js");
|
|
9
|
+
class EQUALS extends Func_js_1.Func {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("EQUALS", [
|
|
12
|
+
new FuncArgAny_js_1.FuncArgAny(true, EQUALS.KEY_LEFT),
|
|
13
|
+
new FuncArgAny_js_1.FuncArgAny(true, EQUALS.KEY_RIGHT),
|
|
14
|
+
]);
|
|
15
|
+
}
|
|
16
|
+
calculateResult(evaluatedArguments) {
|
|
17
|
+
const left = evaluatedArguments.get(EQUALS.KEY_LEFT);
|
|
18
|
+
const right = evaluatedArguments.get(EQUALS.KEY_RIGHT);
|
|
19
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(BooleanValue_js_1.BooleanValue.of(left.equals(right)));
|
|
20
|
+
}
|
|
21
|
+
getReturnType(argumentTypes) {
|
|
22
|
+
return Types_js_1.Type.BOOLEAN;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.EQUALS = EQUALS;
|
|
26
|
+
EQUALS.KEY_LEFT = "left";
|
|
27
|
+
EQUALS.KEY_RIGHT = "right";
|
|
28
|
+
//# sourceMappingURL=EQUALS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/EQUALS.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAClD,qDAA8C;AAC9C,+DAA6E;AAC7E,oEAA8D;AAI9D,MAAa,MAAO,SAAQ,cAAI;IAI9B;QACE,KAAK,CAAC,QAAQ,EAAE;YACd,IAAI,0BAAU,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC;YACrC,IAAI,0BAAU,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CACvB,kBAAgD;QAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;;AArBH,wBAsBC;AArB2B,eAAQ,GAAG,MAAM,CAAC;AAClB,gBAAS,GAAG,OAAO,CAAC","file":"expression/function/impl/EQUALS.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\n\nexport class EQUALS extends Func {\n protected static readonly KEY_LEFT = \"left\";\n protected static readonly KEY_RIGHT = \"right\";\n\n constructor() {\n super(\"EQUALS\", [\n new FuncArgAny(true, EQUALS.KEY_LEFT),\n new FuncArgAny(true, EQUALS.KEY_RIGHT),\n ]);\n }\n\n protected calculateResult(\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const left = evaluatedArguments.get(EQUALS.KEY_LEFT);\n const right = evaluatedArguments.get(EQUALS.KEY_RIGHT);\n return new ExprEvalSuccessObj(BooleanValue.of(left.equals(right)));\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.BOOLEAN;\n }\n}\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXISTS = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
7
|
+
const BooleanValue_js_1 = require("../../../value/BooleanValue.js");
|
|
8
|
+
const FuncArgObjectAccessor_js_1 = require("../arg/FuncArgObjectAccessor.js");
|
|
9
|
+
class EXISTS extends Func_js_1.Func {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("EXISTS", [
|
|
12
|
+
new FuncArgObjectAccessor_js_1.FuncArgObjectAccessor(true, EXISTS.KEY_OBJECT, Types_js_1.Type.IFC_OBJECT_REF),
|
|
13
|
+
]);
|
|
14
|
+
}
|
|
15
|
+
getReturnType(argumentTypes) {
|
|
16
|
+
return Types_js_1.Type.BOOLEAN;
|
|
17
|
+
}
|
|
18
|
+
calculateResult(evaluatedArguments) {
|
|
19
|
+
return undefined; // does not get called
|
|
20
|
+
}
|
|
21
|
+
evaluate(funcArgs) {
|
|
22
|
+
const args = this.getArgumentValues(funcArgs);
|
|
23
|
+
if ((0, ExprEvalResult_js_1.isExprEvalError)(args)) {
|
|
24
|
+
return args;
|
|
25
|
+
}
|
|
26
|
+
const arg = args.get(EXISTS.KEY_OBJECT);
|
|
27
|
+
if ((0, ExprEvalResult_js_1.isExprEvalError)(arg)) {
|
|
28
|
+
if (arg.status === ExprEvalResult_js_1.ExprEvalStatus.NOT_FOUND ||
|
|
29
|
+
arg.status === ExprEvalResult_js_1.ExprEvalStatus.IFC_PROPERTY_NOT_FOUND ||
|
|
30
|
+
arg.status === ExprEvalResult_js_1.ExprEvalStatus.IFC_TYPE_OBJECT_NOT_FOUND ||
|
|
31
|
+
arg.status === ExprEvalResult_js_1.ExprEvalStatus.IFC_PROPERTY_SET_NOT_FOUND) {
|
|
32
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(BooleanValue_js_1.BooleanValue.of(false));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return arg;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(BooleanValue_js_1.BooleanValue.of(true));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.EXISTS = EXISTS;
|
|
42
|
+
EXISTS.KEY_OBJECT = "object";
|
|
43
|
+
//# sourceMappingURL=EXISTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/EXISTS.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAKiC;AACjC,qDAA8C;AAC9C,oEAA8D;AAC9D,8EAAwE;AAGxE,MAAa,MAAO,SAAQ,cAAI;IAG9B;QACE,KAAK,CAAC,QAAQ,EAAE;YACd,IAAI,gDAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,eAAI,CAAC,cAAc,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAES,eAAe,CACvB,kBAAgD;QAEhD,OAAO,SAAS,CAAC,CAAC,sBAAsB;IAC1C,CAAC;IAED,QAAQ,CACN,QAAgD;QAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,IAAA,mCAAe,EAAC,IAAI,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,IACE,GAAG,CAAC,MAAM,KAAK,kCAAc,CAAC,SAAS;gBACvC,GAAG,CAAC,MAAM,KAAK,kCAAc,CAAC,sBAAsB;gBACpD,GAAG,CAAC,MAAM,KAAK,kCAAc,CAAC,yBAAyB;gBACvD,GAAG,CAAC,MAAM,KAAK,kCAAc,CAAC,0BAA0B,EACxD;gBACA,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACL,OAAO,GAAG,CAAC;aACZ;SACF;QACD,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;;AAxCH,wBAyCC;AAxCyB,iBAAU,GAAG,QAAQ,CAAC","file":"expression/function/impl/EXISTS.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n isExprEvalError,\n} from \"../../ExprEvalResult.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { FuncArgObjectAccessor } from \"../arg/FuncArgObjectAccessor.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\n\nexport class EXISTS extends Func {\n private static readonly KEY_OBJECT = \"object\";\n\n constructor() {\n super(\"EXISTS\", [\n new FuncArgObjectAccessor(true, EXISTS.KEY_OBJECT, Type.IFC_OBJECT_REF),\n ]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.BOOLEAN;\n }\n\n protected calculateResult(\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n return undefined; // does not get called\n }\n\n evaluate(\n funcArgs: Array<ExprEvalResult<ExpressionValue>>\n ): ExprEvalResult<ExpressionValue> {\n const args = this.getArgumentValues(funcArgs);\n if (isExprEvalError(args)) {\n return args;\n }\n const arg = args.get(EXISTS.KEY_OBJECT);\n if (isExprEvalError(arg)) {\n if (\n arg.status === ExprEvalStatus.NOT_FOUND ||\n arg.status === ExprEvalStatus.IFC_PROPERTY_NOT_FOUND ||\n arg.status === ExprEvalStatus.IFC_TYPE_OBJECT_NOT_FOUND ||\n arg.status === ExprEvalStatus.IFC_PROPERTY_SET_NOT_FOUND\n ) {\n return new ExprEvalSuccessObj(BooleanValue.of(false));\n } else {\n return arg;\n }\n }\n return new ExprEvalSuccessObj(BooleanValue.of(true));\n }\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FuncBooleanBinary = void 0;
|
|
4
|
+
const BooleanValue_js_1 = require("../../../value/BooleanValue.js");
|
|
5
|
+
const Func_js_1 = require("../Func.js");
|
|
6
|
+
const FuncArgBoolean_js_1 = require("../arg/FuncArgBoolean.js");
|
|
7
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
8
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
9
|
+
class FuncBooleanBinary extends Func_js_1.Func {
|
|
10
|
+
constructor(name, fun) {
|
|
11
|
+
super(name, [
|
|
12
|
+
new FuncArgBoolean_js_1.FuncArgBoolean(true, FuncBooleanBinary.KEY_LEFT),
|
|
13
|
+
new FuncArgBoolean_js_1.FuncArgBoolean(true, FuncBooleanBinary.KEY_RIGHT),
|
|
14
|
+
]);
|
|
15
|
+
this.actualCalculation = fun;
|
|
16
|
+
}
|
|
17
|
+
getReturnType(argumentTypes) {
|
|
18
|
+
return Types_js_1.Type.BOOLEAN;
|
|
19
|
+
}
|
|
20
|
+
calculateResult(evaluatedArguments) {
|
|
21
|
+
const left = evaluatedArguments.get(FuncBooleanBinary.KEY_LEFT);
|
|
22
|
+
const right = evaluatedArguments.get(FuncBooleanBinary.KEY_RIGHT);
|
|
23
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(BooleanValue_js_1.BooleanValue.of(this.actualCalculation(left.getValue(), right.getValue())));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.FuncBooleanBinary = FuncBooleanBinary;
|
|
27
|
+
FuncBooleanBinary.KEY_LEFT = "left";
|
|
28
|
+
FuncBooleanBinary.KEY_RIGHT = "right";
|
|
29
|
+
//# sourceMappingURL=FuncBooleanBinary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAC9D,wCAAkC;AAClC,gEAA0D;AAE1D,+DAA6E;AAC7E,qDAA8C;AAG9C,MAAa,iBAAkB,SAAQ,cAAI;IAKzC,YAAY,IAAY,EAAE,GAAwC;QAChE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,kCAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YACpD,IAAI,kCAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAES,eAAe,CACvB,kBAAgD;QAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CACjC,iBAAiB,CAAC,QAAQ,CACX,CAAC;QAClB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAClC,iBAAiB,CAAC,SAAS,CACZ,CAAC;QAClB,OAAO,IAAI,sCAAkB,CAC3B,8BAAY,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;;AA7BH,8CA8BC;AA7ByB,0BAAQ,GAAG,MAAM,CAAC;AAClB,2BAAS,GAAG,OAAO,CAAC","file":"expression/function/impl/FuncBooleanBinary.js","sourcesContent":["import { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Func } from \"../Func.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\n\nexport class FuncBooleanBinary extends Func {\n private static readonly KEY_LEFT = \"left\";\n private static readonly KEY_RIGHT = \"right\";\n private readonly actualCalculation: (l: boolean, r: boolean) => boolean;\n\n constructor(name: string, fun: (l: boolean, r: boolean) => boolean) {\n super(name, [\n new FuncArgBoolean(true, FuncBooleanBinary.KEY_LEFT),\n new FuncArgBoolean(true, FuncBooleanBinary.KEY_RIGHT),\n ]);\n this.actualCalculation = fun;\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.BOOLEAN;\n }\n\n protected calculateResult(\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const left = evaluatedArguments.get(\n FuncBooleanBinary.KEY_LEFT\n ) as BooleanValue;\n const right = evaluatedArguments.get(\n FuncBooleanBinary.KEY_RIGHT\n ) as BooleanValue;\n return new ExprEvalSuccessObj(\n BooleanValue.of(this.actualCalculation(left.getValue(), right.getValue()))\n );\n }\n}\n"]}
|
|
@@ -3,75 +3,64 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MAP = void 0;
|
|
4
4
|
const Func_js_1 = require("../Func.js");
|
|
5
5
|
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
-
const IfcExpression_js_1 = require("../../../IfcExpression.js");
|
|
7
6
|
const FuncArg_js_1 = require("../FuncArg.js");
|
|
8
7
|
const ExprKind_js_1 = require("../../ExprKind.js");
|
|
8
|
+
const IfcExpressionUtils_js_1 = require("../../../IfcExpressionUtils.js");
|
|
9
|
+
const FuncArgMappings_js_1 = require("../arg/FuncArgMappings.js");
|
|
10
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
11
|
+
const WrongFunctionArgumentTypeException_js_1 = require("../../../error/WrongFunctionArgumentTypeException.js");
|
|
9
12
|
class MAP extends Func_js_1.Func {
|
|
10
13
|
constructor() {
|
|
11
14
|
super("MAP", [
|
|
12
15
|
new FuncArg_js_1.FuncArg(true, MAP.ARG_NAME_MAPPING_INPUT),
|
|
13
|
-
new
|
|
16
|
+
new FuncArgMappings_js_1.FuncArgMappings(true, MAP.ARG_NAME_MAPPINGS),
|
|
14
17
|
new FuncArg_js_1.FuncArg(false, MAP.ARG_NAME_DEFAULT_VALUE),
|
|
15
18
|
]);
|
|
16
19
|
}
|
|
20
|
+
getReturnType(argumentTypes) {
|
|
21
|
+
return Types_js_1.Types.or(...argumentTypes[1].getTypes())
|
|
22
|
+
.getTypes()
|
|
23
|
+
.map((t) => t.getTypes()[1])[0];
|
|
24
|
+
}
|
|
25
|
+
checkArgumentsAndGetReturnType(argumentTypes, ctx) {
|
|
26
|
+
const returnType = super.checkArgumentsAndGetReturnType(argumentTypes, ctx);
|
|
27
|
+
const tupleTypes = argumentTypes[1]
|
|
28
|
+
.toArrayType()
|
|
29
|
+
.getElementType().getTypes()[0].getTypes();
|
|
30
|
+
const inType = tupleTypes[0];
|
|
31
|
+
const outType = tupleTypes[1];
|
|
32
|
+
if (!argumentTypes[0].isSameTypeAs(inType)) {
|
|
33
|
+
throw new WrongFunctionArgumentTypeException_js_1.WrongFunctionArgumentTypeException(this.name, this.formalArguments[0].name, inType, argumentTypes[0], 0, ctx);
|
|
34
|
+
}
|
|
35
|
+
if (argumentTypes.length > 2 && !argumentTypes[2].isSameTypeAs(outType)) {
|
|
36
|
+
throw new WrongFunctionArgumentTypeException_js_1.WrongFunctionArgumentTypeException(this.name, this.formalArguments[2].name, inType, argumentTypes[2], 2, ctx);
|
|
37
|
+
}
|
|
38
|
+
return returnType;
|
|
39
|
+
}
|
|
17
40
|
calculateResult(evaluatedArguments) {
|
|
18
41
|
const mappings = evaluatedArguments.get(MAP.ARG_NAME_MAPPINGS);
|
|
19
42
|
const input = evaluatedArguments.get(MAP.ARG_NAME_MAPPING_INPUT);
|
|
20
43
|
const defaultValue = evaluatedArguments.get(MAP.ARG_NAME_DEFAULT_VALUE);
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
const rightColumn = mappings.getValue()[1].getValue();
|
|
24
|
-
const numMappings = leftColumn.length;
|
|
44
|
+
const outerArray = mappings.getValue();
|
|
45
|
+
const numMappings = outerArray.length;
|
|
25
46
|
for (let i = 0; i < numMappings; i++) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
47
|
+
const error = FuncArgMappings_js_1.FuncArgMappings.checkSingleMapping(outerArray, i);
|
|
48
|
+
if (!(0, IfcExpressionUtils_js_1.isNullish)(error)) {
|
|
49
|
+
return error;
|
|
29
50
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return new ExprEvalResult_js_1.ExprEvalFunctionEvaluationErrorObj(ExprKind_js_1.ExprKind.FUNCTION, ExprEvalResult_js_1.ExprEvalStatus.UNDEFINED_RESULT, "Input value not found in left column. No default return value specified, therefore the result of MAP() is undefined ", this.name);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return new ExprEvalResult_js_1.ExprEvalSuccessObj(defaultValue);
|
|
51
|
+
const pair = outerArray[i].getValue();
|
|
52
|
+
if (pair[0].equals(input)) {
|
|
53
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(pair[1]);
|
|
37
54
|
}
|
|
38
55
|
}
|
|
39
|
-
|
|
56
|
+
if ((0, IfcExpressionUtils_js_1.isNullish)(defaultValue)) {
|
|
57
|
+
return new ExprEvalResult_js_1.ExprEvalFunctionEvaluationErrorObj(ExprKind_js_1.ExprKind.FUNCTION, ExprEvalResult_js_1.ExprEvalStatus.UNDEFINED_RESULT, "Input value not found in left column. No default return value specified, therefore the result of MAP() is undefined ", this.name);
|
|
58
|
+
}
|
|
59
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(defaultValue);
|
|
40
60
|
}
|
|
41
61
|
}
|
|
42
62
|
exports.MAP = MAP;
|
|
43
63
|
MAP.ARG_NAME_MAPPINGS = "mappings";
|
|
44
64
|
MAP.ARG_NAME_MAPPING_INPUT = "input";
|
|
45
65
|
MAP.ARG_NAME_DEFAULT_VALUE = "defaultValue";
|
|
46
|
-
class MappingsArg extends FuncArg_js_1.FuncArg {
|
|
47
|
-
constructor(required, name) {
|
|
48
|
-
super(required, name);
|
|
49
|
-
}
|
|
50
|
-
transformValue(invocationValue) {
|
|
51
|
-
if ((0, ExprEvalResult_js_1.isExprEvalSuccess)(invocationValue)) {
|
|
52
|
-
const mappings = invocationValue.result;
|
|
53
|
-
if (!Array.isArray(mappings.getValue())) {
|
|
54
|
-
return this.makeError(mappings, "The value is not an array");
|
|
55
|
-
}
|
|
56
|
-
if (mappings.getValue().length !== 2) {
|
|
57
|
-
return this.makeError(mappings, "The array is not of length 2");
|
|
58
|
-
}
|
|
59
|
-
const firstElement = mappings.getValue()[0];
|
|
60
|
-
if (!Array.isArray(firstElement.getValue())) {
|
|
61
|
-
return this.makeError(mappings, "The first element of the array is not itself an array");
|
|
62
|
-
}
|
|
63
|
-
const secondElement = mappings.getValue()[1];
|
|
64
|
-
if (!Array.isArray(secondElement.getValue())) {
|
|
65
|
-
return this.makeError(mappings, "The second element of the array is not itself an array");
|
|
66
|
-
}
|
|
67
|
-
if (firstElement.getValue().length !== secondElement.getValue().length) {
|
|
68
|
-
return this.makeError(mappings, `The first element of the array and the second differ in length ${firstElement.getValue().length} and ${secondElement.getValue().length}`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return invocationValue;
|
|
72
|
-
}
|
|
73
|
-
makeError(mappings, problem) {
|
|
74
|
-
return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} must be an array containing two arrays of the same length (i.e., a 2xn matrix: 2 rows, N columns). Problem: ${problem}.`, mappings);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
66
|
//# sourceMappingURL=MAP.js.map
|