ifc-expressions 0.2.3 → 0.3.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/dist/ExprVisitor.d.ts +5 -1
- package/dist/IfcExpression.d.ts +3 -2
- package/dist/cjs/ExprVisitor.js +36 -2
- package/dist/cjs/ExprVisitor.js.map +1 -1
- package/dist/cjs/IfcExpression.js +3 -5
- package/dist/cjs/IfcExpression.js.map +1 -1
- package/dist/cjs/context/IfcElementAccessor.js +2 -2
- package/dist/cjs/context/IfcElementAccessor.js.map +1 -1
- package/dist/cjs/context/ObjectAccessor.js +9 -0
- package/dist/cjs/context/ObjectAccessor.js.map +1 -1
- package/dist/cjs/expression/Expr.js.map +1 -1
- package/dist/cjs/expression/Expr0.js +18 -2
- package/dist/cjs/expression/Expr0.js.map +1 -1
- package/dist/cjs/expression/Expr1.js +46 -2
- package/dist/cjs/expression/Expr1.js.map +1 -1
- package/dist/cjs/expression/Expr2.js +48 -2
- package/dist/cjs/expression/Expr2.js.map +1 -1
- package/dist/cjs/expression/Expr2LeftBeforeRight.js +45 -0
- package/dist/cjs/expression/Expr2LeftBeforeRight.js.map +1 -0
- package/dist/cjs/expression/ExprBase.js +20 -0
- package/dist/cjs/expression/ExprBase.js.map +1 -0
- package/dist/cjs/expression/ExprEvalResult.js +165 -0
- package/dist/cjs/expression/ExprEvalResult.js.map +1 -0
- package/dist/cjs/expression/ExprKind.js +24 -0
- package/dist/cjs/expression/ExprKind.js.map +1 -0
- package/dist/cjs/expression/LiteralExpr.js +25 -0
- package/dist/cjs/expression/LiteralExpr.js.map +1 -0
- package/dist/cjs/expression/LocalContextKeys.js +7 -0
- package/dist/cjs/expression/LocalContextKeys.js.map +1 -0
- package/dist/cjs/expression/function/Func.js +93 -0
- package/dist/cjs/expression/function/Func.js.map +1 -0
- package/dist/cjs/expression/function/FuncArg.js +33 -0
- package/dist/cjs/expression/function/FuncArg.js.map +1 -0
- package/dist/cjs/expression/function/FunctionExpr.js +33 -0
- package/dist/cjs/expression/function/FunctionExpr.js.map +1 -0
- package/dist/cjs/expression/function/IfcExpressionFunctionConfigException.js +10 -0
- package/dist/cjs/expression/function/IfcExpressionFunctionConfigException.js.map +1 -0
- package/dist/cjs/expression/function/IfcExpressionFunctions.js +26 -0
- package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgBase.js +34 -0
- package/dist/cjs/expression/function/arg/FuncArgBase.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgInt.js +25 -0
- package/dist/cjs/expression/function/arg/FuncArgInt.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgNumeric.js +22 -0
- package/dist/cjs/expression/function/arg/FuncArgNumeric.js.map +1 -0
- package/dist/cjs/expression/function/impl/MAP.js +77 -0
- package/dist/cjs/expression/function/impl/MAP.js.map +1 -0
- package/dist/cjs/expression/function/impl/ROUND.js +29 -0
- package/dist/cjs/expression/function/impl/ROUND.js.map +1 -0
- package/dist/cjs/expression/numeric/DivideExpr.js +8 -6
- package/dist/cjs/expression/numeric/DivideExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/MinusExpr.js +4 -6
- package/dist/cjs/expression/numeric/MinusExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/MultiplyExpr.js +4 -6
- package/dist/cjs/expression/numeric/MultiplyExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/NumParenthesisExpr.js +4 -3
- package/dist/cjs/expression/numeric/NumParenthesisExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/NumericLiteralExpr.js +5 -4
- package/dist/cjs/expression/numeric/NumericLiteralExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/PlusExpr.js +4 -6
- package/dist/cjs/expression/numeric/PlusExpr.js.map +1 -1
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js +19 -5
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js +3 -2
- package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js +19 -5
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -1
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js +33 -8
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js.map +1 -1
- package/dist/cjs/expression/reference/PropObjectReferenceExpr.js +3 -2
- package/dist/cjs/expression/reference/PropObjectReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/string/StringConcatExpr.js +4 -3
- package/dist/cjs/expression/string/StringConcatExpr.js.map +1 -1
- package/dist/cjs/expression/string/StringLiteralExpr.js +5 -4
- package/dist/cjs/expression/string/StringLiteralExpr.js.map +1 -1
- package/dist/cjs/expression/structure/ArrayExpr.js +26 -0
- package/dist/cjs/expression/structure/ArrayExpr.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionLexer.js +74 -72
- package/dist/cjs/gen/parser/IfcExpressionLexer.js.map +1 -1
- package/dist/cjs/gen/parser/IfcExpressionParser.js +148 -104
- package/dist/cjs/gen/parser/IfcExpressionParser.js.map +1 -1
- package/dist/cjs/value/ArrayValue.js +23 -0
- package/dist/cjs/value/ArrayValue.js.map +1 -0
- package/dist/cjs/value/BooleanValue.js +12 -3
- package/dist/cjs/value/BooleanValue.js.map +1 -1
- package/dist/cjs/value/LiteralValue.js.map +1 -1
- package/dist/cjs/value/LiteralValueAnyArity.js.map +1 -1
- package/dist/cjs/value/LogicalValue.js +14 -3
- package/dist/cjs/value/LogicalValue.js.map +1 -1
- package/dist/cjs/value/NumericValue.js +16 -7
- package/dist/cjs/value/NumericValue.js.map +1 -1
- package/dist/cjs/value/ReferenceValue.js +12 -3
- package/dist/cjs/value/ReferenceValue.js.map +1 -1
- package/dist/cjs/value/StringValue.js +12 -3
- package/dist/cjs/value/StringValue.js.map +1 -1
- package/dist/cjs/value/Value.js +0 -10
- package/dist/cjs/value/Value.js.map +1 -1
- package/dist/context/ObjectAccessor.d.ts +1 -0
- package/dist/expression/Expr.d.ts +4 -1
- package/dist/expression/Expr0.d.ts +8 -4
- package/dist/expression/Expr1.d.ts +20 -5
- package/dist/expression/Expr2.d.ts +15 -6
- package/dist/expression/Expr2LeftBeforeRight.d.ts +14 -0
- package/dist/expression/ExprBase.d.ts +11 -0
- package/dist/expression/ExprEvalResult.d.ts +125 -0
- package/dist/expression/ExprKind.d.ts +19 -0
- package/dist/expression/LiteralExpr.d.ts +11 -0
- package/dist/expression/LocalContextKeys.d.ts +3 -0
- package/dist/expression/function/Func.d.ts +30 -0
- package/dist/expression/function/FuncArg.d.ts +18 -0
- package/dist/expression/function/FunctionExpr.d.ts +13 -0
- package/dist/expression/function/IfcExpressionFunctionConfigException.d.ts +3 -0
- package/dist/expression/function/IfcExpressionFunctions.d.ts +7 -0
- package/dist/expression/function/arg/FuncArgBase.d.ts +19 -0
- package/dist/expression/function/arg/FuncArgInt.d.ts +8 -0
- package/dist/expression/function/arg/FuncArgNumeric.d.ts +8 -0
- package/dist/expression/function/impl/MAP.d.ts +10 -0
- package/dist/expression/function/impl/ROUND.d.ts +9 -0
- package/dist/expression/numeric/DivideExpr.d.ts +4 -2
- package/dist/expression/numeric/MinusExpr.d.ts +3 -2
- package/dist/expression/numeric/MultiplyExpr.d.ts +3 -2
- package/dist/expression/numeric/NumParenthesisExpr.d.ts +2 -2
- package/dist/expression/numeric/NumericLiteralExpr.d.ts +4 -3
- package/dist/expression/numeric/PlusExpr.d.ts +2 -2
- package/dist/expression/reference/AttributeReferenceExpr.d.ts +9 -5
- package/dist/expression/reference/ElemObjectReferenceExpr.d.ts +1 -1
- package/dist/expression/reference/NestedObjectChainEndExpr.d.ts +5 -4
- package/dist/expression/reference/NestedObjectChainExpr.d.ts +9 -6
- package/dist/expression/reference/PropObjectReferenceExpr.d.ts +1 -1
- package/dist/expression/string/StringConcatExpr.d.ts +2 -2
- package/dist/expression/string/StringLiteralExpr.d.ts +3 -3
- package/dist/expression/structure/ArrayExpr.d.ts +11 -0
- package/dist/gen/parser/IfcExpressionLexer.d.ts +10 -9
- package/dist/gen/parser/IfcExpressionParser.d.ts +10 -9
- package/dist/mjs/ExprVisitor.js +37 -3
- package/dist/mjs/ExprVisitor.js.map +1 -1
- package/dist/mjs/IfcExpression.js +3 -4
- package/dist/mjs/IfcExpression.js.map +1 -1
- package/dist/mjs/context/IfcElementAccessor.js +2 -2
- package/dist/mjs/context/IfcElementAccessor.js.map +1 -1
- package/dist/mjs/context/ObjectAccessor.js +7 -1
- package/dist/mjs/context/ObjectAccessor.js.map +1 -1
- package/dist/mjs/expression/Expr.js.map +1 -1
- package/dist/mjs/expression/Expr0.js +18 -2
- package/dist/mjs/expression/Expr0.js.map +1 -1
- package/dist/mjs/expression/Expr1.js +46 -2
- package/dist/mjs/expression/Expr1.js.map +1 -1
- package/dist/mjs/expression/Expr2.js +48 -2
- package/dist/mjs/expression/Expr2.js.map +1 -1
- package/dist/mjs/expression/Expr2LeftBeforeRight.js +41 -0
- package/dist/mjs/expression/Expr2LeftBeforeRight.js.map +1 -0
- package/dist/mjs/expression/ExprBase.js +16 -0
- package/dist/mjs/expression/ExprBase.js.map +1 -0
- package/dist/mjs/expression/ExprEvalResult.js +144 -0
- package/dist/mjs/expression/ExprEvalResult.js.map +1 -0
- package/dist/mjs/expression/ExprKind.js +21 -0
- package/dist/mjs/expression/ExprKind.js.map +1 -0
- package/dist/mjs/expression/LiteralExpr.js +21 -0
- package/dist/mjs/expression/LiteralExpr.js.map +1 -0
- package/dist/mjs/expression/LocalContextKeys.js +4 -0
- package/dist/mjs/expression/LocalContextKeys.js.map +1 -0
- package/dist/mjs/expression/function/Func.js +89 -0
- package/dist/mjs/expression/function/Func.js.map +1 -0
- package/dist/mjs/expression/function/FuncArg.js +29 -0
- package/dist/mjs/expression/function/FuncArg.js.map +1 -0
- package/dist/mjs/expression/function/FunctionExpr.js +29 -0
- package/dist/mjs/expression/function/FunctionExpr.js.map +1 -0
- package/dist/mjs/expression/function/IfcExpressionFunctionConfigException.js +6 -0
- package/dist/mjs/expression/function/IfcExpressionFunctionConfigException.js.map +1 -0
- package/dist/mjs/expression/function/IfcExpressionFunctions.js +22 -0
- package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgBase.js +30 -0
- package/dist/mjs/expression/function/arg/FuncArgBase.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgInt.js +21 -0
- package/dist/mjs/expression/function/arg/FuncArgInt.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgNumeric.js +18 -0
- package/dist/mjs/expression/function/arg/FuncArgNumeric.js.map +1 -0
- package/dist/mjs/expression/function/impl/MAP.js +73 -0
- package/dist/mjs/expression/function/impl/MAP.js.map +1 -0
- package/dist/mjs/expression/function/impl/ROUND.js +25 -0
- package/dist/mjs/expression/function/impl/ROUND.js.map +1 -0
- package/dist/mjs/expression/numeric/DivideExpr.js +8 -6
- package/dist/mjs/expression/numeric/DivideExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/MinusExpr.js +4 -6
- package/dist/mjs/expression/numeric/MinusExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/MultiplyExpr.js +4 -6
- package/dist/mjs/expression/numeric/MultiplyExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/NumParenthesisExpr.js +4 -3
- package/dist/mjs/expression/numeric/NumParenthesisExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/NumericLiteralExpr.js +5 -4
- package/dist/mjs/expression/numeric/NumericLiteralExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/PlusExpr.js +4 -6
- package/dist/mjs/expression/numeric/PlusExpr.js.map +1 -1
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js +19 -5
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js +3 -2
- package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js +19 -5
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -1
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js +33 -8
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js.map +1 -1
- package/dist/mjs/expression/reference/PropObjectReferenceExpr.js +3 -2
- package/dist/mjs/expression/reference/PropObjectReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/string/StringConcatExpr.js +4 -3
- package/dist/mjs/expression/string/StringConcatExpr.js.map +1 -1
- package/dist/mjs/expression/string/StringLiteralExpr.js +5 -4
- package/dist/mjs/expression/string/StringLiteralExpr.js.map +1 -1
- package/dist/mjs/expression/structure/ArrayExpr.js +22 -0
- package/dist/mjs/expression/structure/ArrayExpr.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionLexer.js +74 -72
- package/dist/mjs/gen/parser/IfcExpressionLexer.js.map +1 -1
- package/dist/mjs/gen/parser/IfcExpressionParser.js +148 -104
- package/dist/mjs/gen/parser/IfcExpressionParser.js.map +1 -1
- package/dist/mjs/value/ArrayValue.js +19 -0
- package/dist/mjs/value/ArrayValue.js.map +1 -0
- package/dist/mjs/value/BooleanValue.js +12 -3
- package/dist/mjs/value/BooleanValue.js.map +1 -1
- package/dist/mjs/value/LiteralValue.js.map +1 -1
- package/dist/mjs/value/LiteralValueAnyArity.js.map +1 -1
- package/dist/mjs/value/LogicalValue.js +14 -3
- package/dist/mjs/value/LogicalValue.js.map +1 -1
- package/dist/mjs/value/NumericValue.js +16 -4
- package/dist/mjs/value/NumericValue.js.map +1 -1
- package/dist/mjs/value/ReferenceValue.js +12 -3
- package/dist/mjs/value/ReferenceValue.js.map +1 -1
- package/dist/mjs/value/StringValue.js +12 -3
- package/dist/mjs/value/StringValue.js.map +1 -1
- package/dist/mjs/value/Value.js +1 -8
- package/dist/mjs/value/Value.js.map +1 -1
- package/dist/value/ArrayValue.d.ts +12 -0
- package/dist/value/BooleanValue.d.ts +8 -1
- package/dist/value/LiteralValue.d.ts +2 -1
- package/dist/value/LiteralValueAnyArity.d.ts +1 -1
- package/dist/value/LogicalValue.d.ts +8 -1
- package/dist/value/NumericValue.d.ts +11 -4
- package/dist/value/ReferenceValue.d.ts +8 -1
- package/dist/value/StringValue.d.ts +8 -1
- package/dist/value/Value.d.ts +2 -3
- package/package.json +1 -1
- package/dist/cjs/expression/ArrayExpr.js +0 -3
- package/dist/cjs/expression/ArrayExpr.js.map +0 -1
- package/dist/cjs/expression/numeric/MultiplyByExpr.js +0 -18
- package/dist/cjs/expression/numeric/MultiplyByExpr.js.map +0 -1
- package/dist/expression/ArrayExpr.d.ts +0 -3
- package/dist/expression/numeric/MultiplyByExpr.d.ts +0 -8
- package/dist/mjs/expression/ArrayExpr.js +0 -2
- package/dist/mjs/expression/ArrayExpr.js.map +0 -1
- package/dist/mjs/expression/numeric/MultiplyByExpr.js +0 -14
- package/dist/mjs/expression/numeric/MultiplyByExpr.js.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FuncArgBase } from "./FuncArgBase";
|
|
2
|
+
import { ExprEvalTypeErrorObj, } from "../../ExprEvalResult";
|
|
3
|
+
import { ExprKind } from "../../ExprKind";
|
|
4
|
+
import { Decimal } from "decimal.js";
|
|
5
|
+
export class FuncArgNumeric extends FuncArgBase {
|
|
6
|
+
constructor(required, name, defaultValue) {
|
|
7
|
+
super(required, name, defaultValue);
|
|
8
|
+
}
|
|
9
|
+
transformForTypeCheck(invocationValue) {
|
|
10
|
+
const result = invocationValue.result;
|
|
11
|
+
const value = result.getValue();
|
|
12
|
+
if (Decimal.isDecimal(value)) {
|
|
13
|
+
return invocationValue;
|
|
14
|
+
}
|
|
15
|
+
return new ExprEvalTypeErrorObj(ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} must be a number, but was ${JSON.stringify(value)}`, value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=FuncArgNumeric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["expression/function/arg/FuncArgNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAGL,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,OAAO,cAAe,SAAQ,WAAyB;IAC3D,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA2B;QACtE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAES,qBAAqB,CAC7B,eAAsD;QAEtD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,8BAA8B,IAAI,CAAC,SAAS,CAC/D,KAAK,CACN,EAAE,EACH,KAAK,CACN,CAAC;IACJ,CAAC;CACF","file":"expression/function/arg/FuncArgNumeric.js","sourcesContent":["import { FuncArgBase } from \"./FuncArgBase\";\nimport { LiteralValueAnyArity } from \"../../../value/LiteralValueAnyArity\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult\";\nimport { ExprKind } from \"../../ExprKind\";\nimport { NumericValue } from \"../../../value/NumericValue\";\nimport { Decimal } from \"decimal.js\";\n\nexport class FuncArgNumeric extends FuncArgBase<NumericValue> {\n constructor(required: boolean, name: string, defaultValue?: NumericValue) {\n super(required, name, defaultValue);\n }\n\n protected transformForTypeCheck(\n invocationValue: ExprEvalSuccess<LiteralValueAnyArity>\n ): ExprEvalResult<LiteralValueAnyArity> {\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,73 @@
|
|
|
1
|
+
import { Func } from "../Func";
|
|
2
|
+
import { ExprEvalFunctionEvaluationErrorObj, ExprEvalStatus, ExprEvalSuccessObj, ExprEvalTypeErrorObj, isExprEvalSuccess, } from "../../ExprEvalResult";
|
|
3
|
+
import { isNullish } from "../../../IfcExpression";
|
|
4
|
+
import { FuncArg } from "../FuncArg";
|
|
5
|
+
import { ExprKind } from "../../ExprKind";
|
|
6
|
+
export class MAP extends Func {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("MAP", [
|
|
9
|
+
new FuncArg(true, MAP.ARG_NAME_MAPPING_INPUT),
|
|
10
|
+
new MappingsArg(true, MAP.ARG_NAME_MAPPINGS),
|
|
11
|
+
new FuncArg(false, MAP.ARG_NAME_DEFAULT_VALUE),
|
|
12
|
+
]);
|
|
13
|
+
}
|
|
14
|
+
calculateResult(evaluatedArguments) {
|
|
15
|
+
const mappings = evaluatedArguments.get(MAP.ARG_NAME_MAPPINGS);
|
|
16
|
+
const input = evaluatedArguments.get(MAP.ARG_NAME_MAPPING_INPUT);
|
|
17
|
+
const defaultValue = evaluatedArguments.get(MAP.ARG_NAME_DEFAULT_VALUE);
|
|
18
|
+
let matchIndex = -1;
|
|
19
|
+
const leftColumn = mappings.getValue()[0].getValue();
|
|
20
|
+
const rightColumn = mappings.getValue()[1].getValue();
|
|
21
|
+
const numMappings = leftColumn.length;
|
|
22
|
+
for (let i = 0; i < numMappings; i++) {
|
|
23
|
+
if (leftColumn[i].equals(input)) {
|
|
24
|
+
matchIndex = i;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (matchIndex === -1) {
|
|
29
|
+
if (isNullish(defaultValue)) {
|
|
30
|
+
return new ExprEvalFunctionEvaluationErrorObj(ExprKind.FUNCTION, ExprEvalStatus.UNDEFINED_RESULT, "Input value not found in left column. No default return value specified, therefore the result of MAP() is undefined ", this.name);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return new ExprEvalSuccessObj(defaultValue);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return new ExprEvalSuccessObj(rightColumn[matchIndex]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
MAP.ARG_NAME_MAPPINGS = "mappings";
|
|
40
|
+
MAP.ARG_NAME_MAPPING_INPUT = "input";
|
|
41
|
+
MAP.ARG_NAME_DEFAULT_VALUE = "defaultValue";
|
|
42
|
+
class MappingsArg extends FuncArg {
|
|
43
|
+
constructor(required, name) {
|
|
44
|
+
super(required, name);
|
|
45
|
+
}
|
|
46
|
+
transformValue(invocationValue) {
|
|
47
|
+
if (isExprEvalSuccess(invocationValue)) {
|
|
48
|
+
const mappings = invocationValue.result;
|
|
49
|
+
if (!Array.isArray(mappings.getValue())) {
|
|
50
|
+
return this.makeError(mappings, "The value is not an array");
|
|
51
|
+
}
|
|
52
|
+
if (mappings.getValue().length !== 2) {
|
|
53
|
+
return this.makeError(mappings, "The array is not of length 2");
|
|
54
|
+
}
|
|
55
|
+
const firstElement = mappings.getValue()[0];
|
|
56
|
+
if (!Array.isArray(firstElement.getValue())) {
|
|
57
|
+
return this.makeError(mappings, "The first element of the array is not itself an array");
|
|
58
|
+
}
|
|
59
|
+
const secondElement = mappings.getValue()[1];
|
|
60
|
+
if (!Array.isArray(secondElement.getValue())) {
|
|
61
|
+
return this.makeError(mappings, "The second element of the array is not itself an array");
|
|
62
|
+
}
|
|
63
|
+
if (firstElement.getValue().length !== secondElement.getValue().length) {
|
|
64
|
+
return this.makeError(mappings, `The first element of the array and the second differ in length ${firstElement.getValue().length} and ${secondElement.getValue().length}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return invocationValue;
|
|
68
|
+
}
|
|
69
|
+
makeError(mappings, problem) {
|
|
70
|
+
return new ExprEvalTypeErrorObj(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);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=MAP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["expression/function/impl/MAP.ts"],"names":[],"mappings":"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","file":"expression/function/impl/MAP.js","sourcesContent":["import { Func } from \"../Func\";\nimport { LiteralValueAnyArity } from \"../../../value/LiteralValueAnyArity\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n ExprEvalTypeErrorObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult\";\nimport { isNullish, LiteralValue } from \"../../../IfcExpression\";\nimport { FuncArg } from \"../FuncArg\";\nimport { ExprKind } from \"../../ExprKind\";\nimport { ArrayValue } from \"../../../value/ArrayValue\";\n\nexport class MAP extends Func {\n private static readonly ARG_NAME_MAPPINGS = \"mappings\";\n private static readonly ARG_NAME_MAPPING_INPUT = \"input\";\n private static readonly ARG_NAME_DEFAULT_VALUE = \"defaultValue\";\n\n constructor() {\n super(\"MAP\", [\n new FuncArg(true, MAP.ARG_NAME_MAPPING_INPUT),\n new MappingsArg(true, MAP.ARG_NAME_MAPPINGS),\n new FuncArg(false, MAP.ARG_NAME_DEFAULT_VALUE),\n ]);\n }\n\n protected calculateResult(\n evaluatedArguments: Map<string, LiteralValueAnyArity>\n ): ExprEvalResult<LiteralValueAnyArity> {\n const mappings = evaluatedArguments.get(\n MAP.ARG_NAME_MAPPINGS\n ) as unknown as ArrayValue;\n const input = evaluatedArguments.get(\n MAP.ARG_NAME_MAPPING_INPUT\n ) as unknown as LiteralValueAnyArity;\n const defaultValue = evaluatedArguments.get(\n MAP.ARG_NAME_DEFAULT_VALUE\n ) as unknown as LiteralValue;\n let matchIndex = -1;\n const leftColumn = (\n mappings.getValue()[0] as unknown as ArrayValue\n ).getValue();\n const rightColumn = (\n mappings.getValue()[1] as unknown as ArrayValue\n ).getValue();\n const numMappings = leftColumn.length;\n for (let i = 0; i < numMappings; i++) {\n if (leftColumn[i].equals(input)) {\n matchIndex = i;\n break;\n }\n }\n if (matchIndex === -1) {\n if (isNullish(defaultValue)) {\n return new ExprEvalFunctionEvaluationErrorObj(\n ExprKind.FUNCTION,\n ExprEvalStatus.UNDEFINED_RESULT,\n \"Input value not found in left column. No default return value specified, therefore the result of MAP() is undefined \",\n this.name\n );\n } else {\n return new ExprEvalSuccessObj(defaultValue);\n }\n }\n return new ExprEvalSuccessObj(\n rightColumn[matchIndex] as LiteralValueAnyArity\n );\n }\n}\n\nclass MappingsArg extends FuncArg<any> {\n constructor(required: boolean, name: string) {\n super(required, name);\n }\n\n transformValue(\n invocationValue: ExprEvalResult<LiteralValueAnyArity>\n ): ExprEvalResult<LiteralValueAnyArity> {\n if (isExprEvalSuccess(invocationValue)) {\n const mappings = invocationValue.result as ArrayValue;\n if (!Array.isArray(mappings.getValue())) {\n return this.makeError(mappings, \"The value is not an array\");\n }\n if (mappings.getValue().length !== 2) {\n return this.makeError(mappings, \"The array is not of length 2\");\n }\n const firstElement = mappings.getValue()[0] as unknown as ArrayValue;\n if (!Array.isArray(firstElement.getValue())) {\n return this.makeError(\n mappings,\n \"The first element of the array is not itself an array\"\n );\n }\n const secondElement = mappings.getValue()[1] as unknown as ArrayValue;\n if (!Array.isArray(secondElement.getValue())) {\n return this.makeError(\n mappings,\n \"The second element of the array is not itself an array\"\n );\n }\n if (firstElement.getValue().length !== secondElement.getValue().length) {\n return this.makeError(\n mappings,\n `The first element of the array and the second differ in length ${\n firstElement.getValue().length\n } and ${secondElement.getValue().length}`\n );\n }\n }\n return invocationValue;\n }\n\n private makeError(mappings: LiteralValueAnyArity, 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"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Func } from "../Func";
|
|
2
|
+
import { FuncArgInt } from "../arg/FuncArgInt";
|
|
3
|
+
import { NumericValue } from "../../../value/NumericValue";
|
|
4
|
+
import { FuncArgNumeric } from "../arg/FuncArgNumeric";
|
|
5
|
+
import { ExprEvalSuccessObj } from "../../ExprEvalResult";
|
|
6
|
+
import { Decimal } from "decimal.js";
|
|
7
|
+
export class ROUND extends Func {
|
|
8
|
+
constructor() {
|
|
9
|
+
super("ROUND", [
|
|
10
|
+
new FuncArgNumeric(true, ROUND.KEY_INPUT),
|
|
11
|
+
new FuncArgInt(false, ROUND.KEY_NUM_DECMIALS, new NumericValue(0)),
|
|
12
|
+
]);
|
|
13
|
+
}
|
|
14
|
+
calculateResult(evaluatedArguments) {
|
|
15
|
+
const input = evaluatedArguments.get(ROUND.KEY_INPUT);
|
|
16
|
+
const numDecimals = evaluatedArguments.get(ROUND.KEY_NUM_DECMIALS);
|
|
17
|
+
const rounded = input
|
|
18
|
+
.getValue()
|
|
19
|
+
.toDecimalPlaces(numDecimals.getValue().toNumber(), Decimal.ROUND_HALF_UP);
|
|
20
|
+
return new ExprEvalSuccessObj(new NumericValue(rounded));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
ROUND.KEY_INPUT = "input";
|
|
24
|
+
ROUND.KEY_NUM_DECMIALS = "num_decimals";
|
|
25
|
+
//# sourceMappingURL=ROUND.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["expression/function/impl/ROUND.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,OAAO,KAAM,SAAQ,IAAI;IAI7B;QACE,KAAK,CAAC,OAAO,EAAE;YACb,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;YACzC,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CACvB,kBAAqD;QAErD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAiB,CAAC;QACtE,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CACxC,KAAK,CAAC,gBAAgB,CACP,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK;aAClB,QAAQ,EAAE;aACV,eAAe,CACd,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EACjC,OAAO,CAAC,aAAa,CACtB,CAAC;QACJ,OAAO,IAAI,kBAAkB,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;;AAxBc,eAAS,GAAG,OAAO,CAAC;AACpB,sBAAgB,GAAG,cAAc,CAAC","file":"expression/function/impl/ROUND.js","sourcesContent":["import { Func } from \"../Func\";\nimport { FuncArgInt } from \"../arg/FuncArgInt\";\nimport { NumericValue } from \"../../../value/NumericValue\";\nimport { FuncArgNumeric } from \"../arg/FuncArgNumeric\";\nimport { LiteralValueAnyArity } from \"../../../value/LiteralValueAnyArity\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult\";\nimport { Decimal } from \"decimal.js\";\n\nexport class ROUND extends Func {\n private static KEY_INPUT = \"input\";\n private static KEY_NUM_DECMIALS = \"num_decimals\";\n\n constructor() {\n super(\"ROUND\", [\n new FuncArgNumeric(true, ROUND.KEY_INPUT),\n new FuncArgInt(false, ROUND.KEY_NUM_DECMIALS, new NumericValue(0)),\n ]);\n }\n\n protected calculateResult(\n evaluatedArguments: Map<string, LiteralValueAnyArity>\n ): ExprEvalResult<LiteralValueAnyArity> {\n const input = evaluatedArguments.get(ROUND.KEY_INPUT) as NumericValue;\n const numDecimals = evaluatedArguments.get(\n ROUND.KEY_NUM_DECMIALS\n ) as NumericValue;\n const rounded = input\n .getValue()\n .toDecimalPlaces(\n numDecimals.getValue().toNumber(),\n Decimal.ROUND_HALF_UP\n );\n return new ExprEvalSuccessObj(new NumericValue(rounded));\n }\n}\n"]}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { Expr2 } from "../Expr2.js";
|
|
2
2
|
import { NumericValue } from "../../value/NumericValue.js";
|
|
3
|
+
import { ExprKind } from "../ExprKind";
|
|
4
|
+
import { ExprEvalError2Obj, ExprEvalStatus, } from "../ExprEvalResult";
|
|
3
5
|
export class DivideExpr extends Expr2 {
|
|
4
6
|
constructor(left, right) {
|
|
5
|
-
super(left, right);
|
|
7
|
+
super(ExprKind.NUM_DIVIDE, left, right);
|
|
6
8
|
}
|
|
7
|
-
|
|
8
|
-
return NumericValue.of(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
calculateResult(ctx, localCtx, left, right) {
|
|
10
|
+
return NumericValue.of(left.getValue().dividedBy(right.getValue()));
|
|
11
|
+
}
|
|
12
|
+
handleError(error, leftResult, rightResult) {
|
|
13
|
+
return new ExprEvalError2Obj(error, leftResult, rightResult, ExprEvalStatus.MATH_ERROR, error);
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=DivideExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/numeric/DivideExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/numeric/DivideExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAEL,iBAAiB,EAEjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,MAAM,OAAO,UAAW,SAAQ,KAI/B;IACC,YAAY,IAAwB,EAAE,KAAyB;QAC7D,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAES,eAAe,CACvB,GAAyB,EACzB,QAA0B,EAC1B,IAAkB,EAClB,KAAmB;QAEnB,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAES,WAAW,CACnB,KAAU,EACV,UAAwC,EACxC,WAAyC;QAEzC,OAAO,IAAI,iBAAiB,CAC1B,KAAK,EACL,UAAU,EACV,WAAW,EACX,cAAc,CAAC,UAAU,EACzB,KAAK,CACN,CAAC;IACJ,CAAC;CACF","file":"expression/numeric/DivideExpr.js","sourcesContent":["import { Expr2 } from \"../Expr2.js\";\nimport { Expr } from \"../Expr.js\";\nimport { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { NumericValue } from \"../../value/NumericValue.js\";\nimport { ExprKind } from \"../ExprKind\";\nimport {\n ExprEvalError,\n ExprEvalError2Obj,\n ExprEvalResult,\n ExprEvalStatus,\n} from \"../ExprEvalResult\";\n\nexport class DivideExpr extends Expr2<\n NumericValue,\n NumericValue,\n NumericValue\n> {\n constructor(left: Expr<NumericValue>, right: Expr<NumericValue>) {\n super(ExprKind.NUM_DIVIDE, left, right);\n }\n\n protected calculateResult(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n left: NumericValue,\n right: NumericValue\n ): NumericValue | ExprEvalError {\n return NumericValue.of(left.getValue().dividedBy(right.getValue()));\n }\n\n protected handleError(\n error: any,\n leftResult: ExprEvalResult<NumericValue>,\n rightResult: ExprEvalResult<NumericValue>\n ): ExprEvalError {\n return new ExprEvalError2Obj(\n error,\n leftResult,\n rightResult,\n ExprEvalStatus.MATH_ERROR,\n error\n );\n }\n}\n"]}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { Expr2 } from "../Expr2.js";
|
|
2
2
|
import { NumericValue } from "../../value/NumericValue.js";
|
|
3
|
+
import { ExprKind } from "../ExprKind";
|
|
3
4
|
export class MinusExpr extends Expr2 {
|
|
4
5
|
constructor(left, right) {
|
|
5
|
-
super(left, right);
|
|
6
|
+
super(ExprKind.NUM_MINUS, left, right);
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
return NumericValue.of(
|
|
9
|
-
.evaluate(ctx)
|
|
10
|
-
.getValue()
|
|
11
|
-
.minus(this.right.evaluate(ctx).getValue()));
|
|
8
|
+
calculateResult(ctx, localCtx, left, right) {
|
|
9
|
+
return NumericValue.of(left.getValue().minus(right.getValue()));
|
|
12
10
|
}
|
|
13
11
|
}
|
|
14
12
|
//# sourceMappingURL=MinusExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/numeric/MinusExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/numeric/MinusExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,OAAO,SAAU,SAAQ,KAA+C;IAC5E,YAAY,IAAwB,EAAE,KAAyB;QAC7D,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAES,eAAe,CACvB,GAAyB,EACzB,QAA0B,EAC1B,IAAkB,EAClB,KAAmB;QAEnB,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;CACF","file":"expression/numeric/MinusExpr.js","sourcesContent":["import { Expr2 } from \"../Expr2.js\";\nimport { Expr } from \"../Expr.js\";\nimport { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { NumericValue } from \"../../value/NumericValue.js\";\nimport { ExprKind } from \"../ExprKind\";\nimport { ExprEvalError } from \"../ExprEvalResult\";\n\nexport class MinusExpr extends Expr2<NumericValue, NumericValue, NumericValue> {\n constructor(left: Expr<NumericValue>, right: Expr<NumericValue>) {\n super(ExprKind.NUM_MINUS, left, right);\n }\n\n protected calculateResult(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n left: NumericValue,\n right: NumericValue\n ): NumericValue | ExprEvalError {\n return NumericValue.of(left.getValue().minus(right.getValue()));\n }\n}\n"]}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { Expr2 } from "../Expr2.js";
|
|
2
2
|
import { NumericValue } from "../../value/NumericValue.js";
|
|
3
|
+
import { ExprKind } from "../ExprKind";
|
|
3
4
|
export class MultiplyExpr extends Expr2 {
|
|
4
5
|
constructor(left, right) {
|
|
5
|
-
super(left, right);
|
|
6
|
+
super(ExprKind.NUM_MULTIPLY, left, right);
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
return NumericValue.of(
|
|
9
|
-
.evaluate(ctx)
|
|
10
|
-
.getValue()
|
|
11
|
-
.mul(this.right.evaluate(ctx).getValue()));
|
|
8
|
+
calculateResult(ctx, localCtx, left, right) {
|
|
9
|
+
return NumericValue.of(left.getValue().mul(right.getValue()));
|
|
12
10
|
}
|
|
13
11
|
}
|
|
14
12
|
//# sourceMappingURL=MultiplyExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/numeric/MultiplyExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/numeric/MultiplyExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,OAAO,YAAa,SAAQ,KAIjC;IACC,YAAY,IAAwB,EAAE,KAAyB;QAC7D,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAES,eAAe,CACvB,GAAyB,EACzB,QAA0B,EAC1B,IAAkB,EAClB,KAAmB;QAEnB,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;CACF","file":"expression/numeric/MultiplyExpr.js","sourcesContent":["import { Expr2 } from \"../Expr2.js\";\nimport { Expr } from \"../Expr.js\";\nimport { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { NumericValue } from \"../../value/NumericValue.js\";\nimport { ExprKind } from \"../ExprKind\";\nimport { ExprEvalError } from \"../ExprEvalResult\";\n\nexport class MultiplyExpr extends Expr2<\n NumericValue,\n NumericValue,\n NumericValue\n> {\n constructor(left: Expr<NumericValue>, right: Expr<NumericValue>) {\n super(ExprKind.NUM_MULTIPLY, left, right);\n }\n\n protected calculateResult(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n left: NumericValue,\n right: NumericValue\n ): NumericValue | ExprEvalError {\n return NumericValue.of(left.getValue().mul(right.getValue()));\n }\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Expr1 } from "../Expr1.js";
|
|
2
|
+
import { ExprKind } from "../ExprKind";
|
|
2
3
|
export class NumParenthesisExpr extends Expr1 {
|
|
3
4
|
constructor(expression) {
|
|
4
|
-
super(expression);
|
|
5
|
+
super(ExprKind.NUM_PARENTHESIS, expression);
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
-
return
|
|
7
|
+
calculateResult(ctx, localCtx, subExpressionValue) {
|
|
8
|
+
return subExpressionValue;
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
11
|
//# sourceMappingURL=NumParenthesisExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/numeric/NumParenthesisExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/numeric/NumParenthesisExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,kBAAmB,SAAQ,KAAiC;IACvE,YAAY,UAA8B;QACxC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAES,eAAe,CACvB,GAAyB,EACzB,QAA0B,EAC1B,kBAAgC;QAEhC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;CACF","file":"expression/numeric/NumParenthesisExpr.js","sourcesContent":["import { Expr1 } from \"../Expr1.js\";\nimport { Expr } from \"../Expr.js\";\nimport { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { NumericValue } from \"../../value/NumericValue.js\";\nimport { ExprKind } from \"../ExprKind\";\n\nexport class NumParenthesisExpr extends Expr1<NumericValue, NumericValue> {\n constructor(expression: Expr<NumericValue>) {\n super(ExprKind.NUM_PARENTHESIS, expression);\n }\n\n protected calculateResult(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n subExpressionValue: NumericValue\n ): NumericValue {\n return subExpressionValue;\n }\n}\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ExprKind } from "../ExprKind";
|
|
2
|
+
import { LiteralExpr } from "../LiteralExpr";
|
|
3
|
+
export class NumericLiteralExpr extends LiteralExpr {
|
|
3
4
|
constructor(value) {
|
|
4
|
-
super(value);
|
|
5
|
+
super(ExprKind.NUM_LITERAL, value);
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
calculateResult(ctx) {
|
|
7
8
|
return this.value;
|
|
8
9
|
}
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/numeric/NumericLiteralExpr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["expression/numeric/NumericLiteralExpr.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,OAAO,kBAAmB,SAAQ,WAGvC;IACC,YAAY,KAAmB;QAC7B,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAES,eAAe,CACvB,GAAyB;QAEzB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF","file":"expression/numeric/NumericLiteralExpr.js","sourcesContent":["import { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { NumericValue } from \"../../value/NumericValue.js\";\nimport { ExprEvalError } from \"../ExprEvalResult\";\nimport { ExprKind } from \"../ExprKind\";\nimport { LiteralExpr } from \"../LiteralExpr\";\n\nexport class NumericLiteralExpr extends LiteralExpr<\n NumericValue,\n NumericValue\n> {\n constructor(value: NumericValue) {\n super(ExprKind.NUM_LITERAL, value);\n }\n\n protected calculateResult(\n ctx: IfcExpressionContext\n ): NumericValue | ExprEvalError {\n return this.value;\n }\n}\n"]}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { Expr2 } from "../Expr2.js";
|
|
2
2
|
import { NumericValue } from "../../value/NumericValue.js";
|
|
3
|
+
import { ExprKind } from "../ExprKind";
|
|
3
4
|
export class PlusExpr extends Expr2 {
|
|
4
5
|
constructor(left, right) {
|
|
5
|
-
super(left, right);
|
|
6
|
+
super(ExprKind.NUM_PLUS, left, right);
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
return NumericValue.of(
|
|
9
|
-
.evaluate(ctx)
|
|
10
|
-
.getValue()
|
|
11
|
-
.plus(this.right.evaluate(ctx).getValue()));
|
|
8
|
+
calculateResult(ctx, localCtx, leftResult, rightResult) {
|
|
9
|
+
return NumericValue.of(leftResult.getValue().plus(rightResult.getValue()));
|
|
12
10
|
}
|
|
13
11
|
}
|
|
14
12
|
//# sourceMappingURL=PlusExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/numeric/PlusExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/numeric/PlusExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,QAAS,SAAQ,KAA+C;IAC3E,YAAY,IAAwB,EAAE,KAAyB;QAC7D,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,eAAe,CACb,GAAyB,EACzB,QAA0B,EAC1B,UAAwB,EACxB,WAAyB;QAEzB,OAAO,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF","file":"expression/numeric/PlusExpr.js","sourcesContent":["import { Expr2 } from \"../Expr2.js\";\nimport { Expr } from \"../Expr.js\";\nimport { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { NumericValue } from \"../../value/NumericValue.js\";\nimport { ExprKind } from \"../ExprKind\";\n\nexport class PlusExpr extends Expr2<NumericValue, NumericValue, NumericValue> {\n constructor(left: Expr<NumericValue>, right: Expr<NumericValue>) {\n super(ExprKind.NUM_PLUS, left, right);\n }\n\n calculateResult(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n leftResult: NumericValue,\n rightResult: NumericValue\n ): NumericValue {\n return NumericValue.of(leftResult.getValue().plus(rightResult.getValue()));\n }\n}\n"]}
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
import { Expr2 } from "../Expr2.js";
|
|
2
|
+
import { ExprKind } from "../ExprKind";
|
|
3
|
+
import { ExprEvalError2Obj, ExprEvalRefChainErrorObj, ExprEvalStatus, isExprEvalRefChainError, isExprEvalSuccess, } from "../ExprEvalResult";
|
|
4
|
+
import { LocalContextKeys } from "../LocalContextKeys";
|
|
2
5
|
export class AttributeReferenceExpr extends Expr2 {
|
|
3
6
|
constructor(left, right) {
|
|
4
|
-
super(left, right);
|
|
7
|
+
super(ExprKind.REF_ATTRIBUTE, left, right);
|
|
5
8
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
onAfterLeftRecursion(ctx, localCtx, leftResult) {
|
|
10
|
+
localCtx.set(LocalContextKeys.OBJECT_ACCESSOR, leftResult);
|
|
11
|
+
}
|
|
12
|
+
calculateResult(ctx, localCtx, objectAccessor, dereferencedValue) {
|
|
13
|
+
localCtx.delete(LocalContextKeys.OBJECT_ACCESSOR);
|
|
14
|
+
return dereferencedValue;
|
|
15
|
+
}
|
|
16
|
+
makeResultForRightSubExprError(ctx, localCtx, leftResult, rightResult) {
|
|
17
|
+
if (isExprEvalSuccess(leftResult) && isExprEvalRefChainError(rightResult)) {
|
|
18
|
+
return ExprEvalRefChainErrorObj.bubbleUp(rightResult, this.left.getKind());
|
|
19
|
+
}
|
|
20
|
+
return super.makeResultForRightSubExprError(ctx, localCtx, leftResult, rightResult);
|
|
21
|
+
}
|
|
22
|
+
handleError(error, leftResult, rightResult) {
|
|
23
|
+
return new ExprEvalError2Obj(this.getKind(), leftResult, rightResult, ExprEvalStatus.REFERENCE_ERROR, ["Unable to resolve attribute reference:", error]);
|
|
10
24
|
}
|
|
11
25
|
}
|
|
12
26
|
//# sourceMappingURL=AttributeReferenceExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/reference/AttributeReferenceExpr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/reference/AttributeReferenceExpr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAEL,iBAAiB,EACjB,wBAAwB,EAExB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,OAAO,sBAAuB,SAAQ,KAI3C;IACC,YAAY,IAA0B,EAAE,KAAiC;QACvE,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAES,oBAAoB,CAC5B,GAAyB,EACzB,QAA0B,EAC1B,UAA0B;QAE1B,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe,CACb,GAAyB,EACzB,QAAQ,EACR,cAA8B,EAC9B,iBAAuC;QAEvC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAClD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,8BAA8B,CACtC,GAAyB,EACzB,QAA0B,EAC1B,UAA0C,EAC1C,WAA0B;QAE1B,IAAI,iBAAiB,CAAC,UAAU,CAAC,IAAI,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACzE,OAAO,wBAAwB,CAAC,QAAQ,CACtC,WAAW,EACX,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CACpB,CAAC;SACH;QACD,OAAO,KAAK,CAAC,8BAA8B,CACzC,GAAG,EACH,QAAQ,EACR,UAAU,EACV,WAAW,CACZ,CAAC;IACJ,CAAC;IAES,WAAW,CACnB,KAAU,EACV,UAA0C,EAC1C,WAAiD;QAEjD,OAAO,IAAI,iBAAiB,CAC1B,IAAI,CAAC,OAAO,EAAE,EACd,UAAU,EACV,WAAW,EACX,cAAc,CAAC,eAAe,EAC9B,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAClD,CAAC;IACJ,CAAC;CACF","file":"expression/reference/AttributeReferenceExpr.js","sourcesContent":["import { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { Expr2 } from \"../Expr2.js\";\nimport { LiteralValueAnyArity } from \"../../value/LiteralValueAnyArity.js\";\nimport { ObjectAccessor } from \"../../context/ObjectAccessor.js\";\nimport { ExprKind } from \"../ExprKind\";\nimport {\n ExprEvalError,\n ExprEvalError2Obj,\n ExprEvalRefChainErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n isExprEvalRefChainError,\n isExprEvalSuccess,\n} from \"../ExprEvalResult\";\nimport { Expr } from \"../Expr\";\nimport { LocalContextKeys } from \"../LocalContextKeys\";\n\nexport class AttributeReferenceExpr extends Expr2<\n ObjectAccessor,\n LiteralValueAnyArity,\n LiteralValueAnyArity\n> {\n constructor(left: Expr<ObjectAccessor>, right: Expr<LiteralValueAnyArity>) {\n super(ExprKind.REF_ATTRIBUTE, left, right);\n }\n\n protected onAfterLeftRecursion(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n leftResult: ObjectAccessor\n ) {\n localCtx.set(LocalContextKeys.OBJECT_ACCESSOR, leftResult);\n }\n\n calculateResult(\n ctx: IfcExpressionContext,\n localCtx,\n objectAccessor: ObjectAccessor,\n dereferencedValue: LiteralValueAnyArity\n ): LiteralValueAnyArity | ExprEvalError {\n localCtx.delete(LocalContextKeys.OBJECT_ACCESSOR);\n return dereferencedValue;\n }\n\n protected makeResultForRightSubExprError(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n leftResult: ExprEvalResult<ObjectAccessor>,\n rightResult: ExprEvalError\n ): ExprEvalResult<LiteralValueAnyArity> {\n if (isExprEvalSuccess(leftResult) && isExprEvalRefChainError(rightResult)) {\n return ExprEvalRefChainErrorObj.bubbleUp(\n rightResult,\n this.left.getKind()\n );\n }\n return super.makeResultForRightSubExprError(\n ctx,\n localCtx,\n leftResult,\n rightResult\n );\n }\n\n protected handleError(\n error: any,\n leftResult: ExprEvalResult<ObjectAccessor>,\n rightResult: ExprEvalResult<LiteralValueAnyArity>\n ): ExprEvalError {\n return new ExprEvalError2Obj(\n this.getKind(),\n leftResult,\n rightResult,\n ExprEvalStatus.REFERENCE_ERROR,\n [\"Unable to resolve attribute reference:\", error]\n );\n }\n}\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Expr0 } from "../Expr0.js";
|
|
2
|
+
import { ExprKind } from "../ExprKind";
|
|
2
3
|
export class ElemObjectReferenceExpr extends Expr0 {
|
|
3
4
|
constructor() {
|
|
4
|
-
super();
|
|
5
|
+
super(ExprKind.REF_ELEMENT);
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
doEvaluate(ctx) {
|
|
7
8
|
return ctx.resolveElemRef();
|
|
8
9
|
}
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/reference/ElemObjectReferenceExpr.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/reference/ElemObjectReferenceExpr.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,uBACX,SAAQ,KAAqB;IAG7B;QACE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU,CAAC,GAAyB;QAClC,OAAO,GAAG,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;CACF","file":"expression/reference/ElemObjectReferenceExpr.js","sourcesContent":["import { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { ObjectReferenceExpr } from \"./ObjectReferenceExpr.js\";\nimport { ObjectAccessor } from \"../../context/ObjectAccessor.js\";\nimport { Expr0 } from \"../Expr0.js\";\nimport { ExprKind } from \"../ExprKind\";\n\nexport class ElemObjectReferenceExpr\n extends Expr0<ObjectAccessor>\n implements ObjectReferenceExpr\n{\n constructor() {\n super(ExprKind.REF_ELEMENT);\n }\n\n doEvaluate(ctx: IfcExpressionContext): ObjectAccessor {\n return ctx.resolveElemRef();\n }\n}\n"]}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ExprKind } from "../ExprKind";
|
|
2
|
+
import { ExprEvalErrorObj, ExprEvalRefChainErrorObj, ExprEvalStatus, } from "../ExprEvalResult";
|
|
3
|
+
import { isNullish } from "../../IfcExpressionUtils";
|
|
4
|
+
import { Expr0 } from "../Expr0";
|
|
5
|
+
import { LocalContextKeys } from "../LocalContextKeys";
|
|
6
|
+
export class NestedObjectChainEndExpr extends Expr0 {
|
|
3
7
|
constructor(value) {
|
|
4
|
-
super(
|
|
8
|
+
super(ExprKind.REF_NESTED_OBJECT_CHAIN_END);
|
|
9
|
+
this.attributeName = value;
|
|
5
10
|
}
|
|
6
|
-
|
|
7
|
-
|
|
11
|
+
doEvaluate(ctx, localCtx) {
|
|
12
|
+
const objectAccessor = localCtx.get(LocalContextKeys.OBJECT_ACCESSOR);
|
|
13
|
+
if (isNullish(objectAccessor)) {
|
|
14
|
+
return new ExprEvalErrorObj(this.getKind(), ExprEvalStatus.MISSING_OPERAND, `No ObjectAccessor found in localContext when trying to access attribute with name'${this.attributeName}`);
|
|
15
|
+
}
|
|
16
|
+
const attributeValue = objectAccessor.getAttribute(this.attributeName);
|
|
17
|
+
if (isNullish(attributeValue)) {
|
|
18
|
+
return new ExprEvalRefChainErrorObj(this.getKind(), ExprEvalStatus.REFERENCE_ERROR, this.attributeName, `No such nested object: '${this.attributeName}'`);
|
|
19
|
+
}
|
|
20
|
+
localCtx.delete(LocalContextKeys.OBJECT_ACCESSOR);
|
|
21
|
+
return attributeValue;
|
|
8
22
|
}
|
|
9
23
|
}
|
|
10
24
|
//# sourceMappingURL=NestedObjectChainEndExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/reference/NestedObjectChainEndExpr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["expression/reference/NestedObjectChainEndExpr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,OAAO,wBAAyB,SAAQ,KAA2B;IAEvE,YAAY,KAAa;QACvB,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAES,UAAU,CAClB,GAAyB,EACzB,QAA0B;QAE1B,MAAM,cAAc,GAAmB,QAAQ,CAAC,GAAG,CACjD,gBAAgB,CAAC,eAAe,CACjC,CAAC;QACF,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE;YAC7B,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,OAAO,EAAE,EACd,cAAc,CAAC,eAAe,EAC9B,qFAAqF,IAAI,CAAC,aAAa,EAAE,CAC1G,CAAC;SACH;QACD,MAAM,cAAc,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE;YAC7B,OAAO,IAAI,wBAAwB,CACjC,IAAI,CAAC,OAAO,EAAE,EACd,cAAc,CAAC,eAAe,EAC9B,IAAI,CAAC,aAAa,EAClB,2BAA2B,IAAI,CAAC,aAAa,GAAG,CACjD,CAAC;SACH;QACD,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAClD,OAAO,cAAc,CAAC;IACxB,CAAC;CACF","file":"expression/reference/NestedObjectChainEndExpr.js","sourcesContent":["import { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { LiteralValueAnyArity } from \"../../value/LiteralValueAnyArity.js\";\nimport { ExprKind } from \"../ExprKind\";\nimport {\n ExprEvalError,\n ExprEvalErrorObj,\n ExprEvalRefChainErrorObj,\n ExprEvalStatus,\n} from \"../ExprEvalResult\";\nimport { isNullish } from \"../../IfcExpressionUtils\";\nimport { Expr0 } from \"../Expr0\";\nimport { LocalContextKeys } from \"../LocalContextKeys\";\nimport { ObjectAccessor } from \"../../context/ObjectAccessor\";\n\nexport class NestedObjectChainEndExpr extends Expr0<LiteralValueAnyArity> {\n private readonly attributeName: string;\n constructor(value: string) {\n super(ExprKind.REF_NESTED_OBJECT_CHAIN_END);\n this.attributeName = value;\n }\n\n protected doEvaluate(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>\n ): ExprEvalError | LiteralValueAnyArity {\n const objectAccessor: ObjectAccessor = localCtx.get(\n LocalContextKeys.OBJECT_ACCESSOR\n );\n if (isNullish(objectAccessor)) {\n return new ExprEvalErrorObj(\n this.getKind(),\n ExprEvalStatus.MISSING_OPERAND,\n `No ObjectAccessor found in localContext when trying to access attribute with name'${this.attributeName}`\n );\n }\n const attributeValue = objectAccessor.getAttribute(this.attributeName);\n if (isNullish(attributeValue)) {\n return new ExprEvalRefChainErrorObj(\n this.getKind(),\n ExprEvalStatus.REFERENCE_ERROR,\n this.attributeName,\n `No such nested object: '${this.attributeName}'`\n );\n }\n localCtx.delete(LocalContextKeys.OBJECT_ACCESSOR);\n return attributeValue;\n }\n}\n"]}
|
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { ExprKind } from "../ExprKind";
|
|
2
|
+
import { ExprEvalErrorObj, ExprEvalRefChainErrorObj, ExprEvalStatus, isExprEvalRefChainError, mapErrorObjectToMessage, } from "../ExprEvalResult";
|
|
3
|
+
import { Expr1 } from "../Expr1";
|
|
4
|
+
import { isNullish } from "../../IfcExpressionUtils";
|
|
5
|
+
import { LocalContextKeys } from "../LocalContextKeys";
|
|
6
|
+
export class NestedObjectChainExpr extends Expr1 {
|
|
7
|
+
constructor(literalObjectRef, nextLink) {
|
|
8
|
+
super(ExprKind.REF_NESTED_OBJECT_CHAIN, nextLink);
|
|
9
|
+
this.literalObjectRef = literalObjectRef;
|
|
10
|
+
}
|
|
11
|
+
onBeforeRecusion(ctx, localCtx) {
|
|
12
|
+
const objectAccessor = localCtx.get(LocalContextKeys.OBJECT_ACCESSOR);
|
|
13
|
+
if (isNullish(objectAccessor)) {
|
|
14
|
+
return new ExprEvalErrorObj(this.getKind(), ExprEvalStatus.MISSING_OPERAND, `No ObjectAccessor found in localContext when trying to access nested object with name'${this.literalObjectRef}`);
|
|
15
|
+
}
|
|
16
|
+
const nestedObjectAccessor = objectAccessor.getNestedObjectAccessor(this.literalObjectRef);
|
|
17
|
+
if (isNullish(nestedObjectAccessor)) {
|
|
18
|
+
return new ExprEvalRefChainErrorObj(this.getKind(), ExprEvalStatus.REFERENCE_ERROR, this.literalObjectRef, `No such nested object: '${this.literalObjectRef}'`);
|
|
19
|
+
}
|
|
20
|
+
localCtx.set(LocalContextKeys.OBJECT_ACCESSOR, nestedObjectAccessor);
|
|
21
|
+
}
|
|
22
|
+
calculateResult(ctx, localCtx, result) {
|
|
23
|
+
localCtx.delete(LocalContextKeys.OBJECT_ACCESSOR);
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
obtainResultForSubExpressionError(ctx, localCtx, subExpressionResult) {
|
|
27
|
+
if (isExprEvalRefChainError(subExpressionResult)) {
|
|
28
|
+
return ExprEvalRefChainErrorObj.bubbleUp(subExpressionResult, this.literalObjectRef);
|
|
29
|
+
}
|
|
30
|
+
return new ExprEvalRefChainErrorObj(this.getKind(), subExpressionResult.status, this.literalObjectRef, subExpressionResult.message);
|
|
31
|
+
}
|
|
32
|
+
handleError(error, subResult) {
|
|
33
|
+
return new ExprEvalRefChainErrorObj(this.getKind(), ExprEvalStatus.REFERENCE_ERROR, this.literalObjectRef, mapErrorObjectToMessage(error));
|
|
9
34
|
}
|
|
10
35
|
}
|
|
11
36
|
//# sourceMappingURL=NestedObjectChainExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/reference/NestedObjectChainExpr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["expression/reference/NestedObjectChainExpr.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EAExB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,OAAO,qBAAsB,SAAQ,KAG1C;IAEC,YAAY,gBAAwB,EAAE,QAA+B;QACnE,KAAK,CAAC,QAAQ,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAES,gBAAgB,CACxB,GAAyB,EACzB,QAA0B;QAE1B,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CACjC,gBAAgB,CAAC,eAAe,CACf,CAAC;QACpB,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE;YAC7B,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,OAAO,EAAE,EACd,cAAc,CAAC,eAAe,EAC9B,yFAAyF,IAAI,CAAC,gBAAgB,EAAE,CACjH,CAAC;SACH;QACD,MAAM,oBAAoB,GAAG,cAAc,CAAC,uBAAuB,CACjE,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,IAAI,SAAS,CAAC,oBAAoB,CAAC,EAAE;YACnC,OAAO,IAAI,wBAAwB,CACjC,IAAI,CAAC,OAAO,EAAE,EACd,cAAc,CAAC,eAAe,EAC9B,IAAI,CAAC,gBAAgB,EACrB,2BAA2B,IAAI,CAAC,gBAAgB,GAAG,CACpD,CAAC;SACH;QACD,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;IACvE,CAAC;IAED,eAAe,CACb,GAAyB,EACzB,QAA0B,EAC1B,MAA4B;QAE5B,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,iCAAiC,CACzC,GAAyB,EACzB,QAA0B,EAC1B,mBAAkC;QAElC,IAAI,uBAAuB,CAAC,mBAAmB,CAAC,EAAE;YAChD,OAAO,wBAAwB,CAAC,QAAQ,CACtC,mBAAmB,EACnB,IAAI,CAAC,gBAAgB,CACtB,CAAC;SACH;QACD,OAAO,IAAI,wBAAwB,CACjC,IAAI,CAAC,OAAO,EAAE,EACd,mBAAmB,CAAC,MAAM,EAC1B,IAAI,CAAC,gBAAgB,EACrB,mBAAmB,CAAC,OAAO,CAC5B,CAAC;IACJ,CAAC;IAES,WAAW,CACnB,KAAU,EACV,SAA+C;QAE/C,OAAO,IAAI,wBAAwB,CACjC,IAAI,CAAC,OAAO,EAAE,EACd,cAAc,CAAC,eAAe,EAC9B,IAAI,CAAC,gBAAgB,EACrB,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;IACJ,CAAC;CACF","file":"expression/reference/NestedObjectChainExpr.js","sourcesContent":["import { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { ObjectAccessor } from \"../../context/ObjectAccessor.js\";\nimport { LiteralValueAnyArity } from \"../../value/LiteralValueAnyArity.js\";\nimport { ExprKind } from \"../ExprKind\";\nimport {\n ExprEvalError,\n ExprEvalErrorObj,\n ExprEvalRefChainErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n isExprEvalRefChainError,\n mapErrorObjectToMessage,\n} from \"../ExprEvalResult\";\nimport { Expr1 } from \"../Expr1\";\nimport { isNullish } from \"../../IfcExpressionUtils\";\nimport { LocalContextKeys } from \"../LocalContextKeys\";\n\nexport class NestedObjectChainExpr extends Expr1<\n LiteralValueAnyArity,\n LiteralValueAnyArity\n> {\n private readonly literalObjectRef: string;\n constructor(literalObjectRef: string, nextLink: NestedObjectChainExpr) {\n super(ExprKind.REF_NESTED_OBJECT_CHAIN, nextLink);\n this.literalObjectRef = literalObjectRef;\n }\n\n protected onBeforeRecusion(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>\n ): undefined | ExprEvalError {\n const objectAccessor = localCtx.get(\n LocalContextKeys.OBJECT_ACCESSOR\n ) as ObjectAccessor;\n if (isNullish(objectAccessor)) {\n return new ExprEvalErrorObj(\n this.getKind(),\n ExprEvalStatus.MISSING_OPERAND,\n `No ObjectAccessor found in localContext when trying to access nested object with name'${this.literalObjectRef}`\n );\n }\n const nestedObjectAccessor = objectAccessor.getNestedObjectAccessor(\n this.literalObjectRef\n );\n if (isNullish(nestedObjectAccessor)) {\n return new ExprEvalRefChainErrorObj(\n this.getKind(),\n ExprEvalStatus.REFERENCE_ERROR,\n this.literalObjectRef,\n `No such nested object: '${this.literalObjectRef}'`\n );\n }\n localCtx.set(LocalContextKeys.OBJECT_ACCESSOR, nestedObjectAccessor);\n }\n\n calculateResult(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n result: LiteralValueAnyArity\n ): LiteralValueAnyArity | ExprEvalError {\n localCtx.delete(LocalContextKeys.OBJECT_ACCESSOR);\n return result;\n }\n\n protected obtainResultForSubExpressionError(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n subExpressionResult: ExprEvalError\n ): ExprEvalResult<LiteralValueAnyArity> {\n if (isExprEvalRefChainError(subExpressionResult)) {\n return ExprEvalRefChainErrorObj.bubbleUp(\n subExpressionResult,\n this.literalObjectRef\n );\n }\n return new ExprEvalRefChainErrorObj(\n this.getKind(),\n subExpressionResult.status,\n this.literalObjectRef,\n subExpressionResult.message\n );\n }\n\n protected handleError(\n error: any,\n subResult: ExprEvalResult<LiteralValueAnyArity>\n ): ExprEvalError {\n return new ExprEvalRefChainErrorObj(\n this.getKind(),\n ExprEvalStatus.REFERENCE_ERROR,\n this.literalObjectRef,\n mapErrorObjectToMessage(error)\n );\n }\n}\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Expr0 } from "../Expr0.js";
|
|
2
|
+
import { ExprKind } from "../ExprKind";
|
|
2
3
|
export class PropObjectReferenceExpr extends Expr0 {
|
|
3
4
|
constructor() {
|
|
4
|
-
super();
|
|
5
|
+
super(ExprKind.REF_PROPERTY);
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
doEvaluate(ctx) {
|
|
7
8
|
return ctx.resolvePropRef();
|
|
8
9
|
}
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/reference/PropObjectReferenceExpr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/reference/PropObjectReferenceExpr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,uBACX,SAAQ,KAAqB;IAG7B;QACE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,GAAyB;QAClC,OAAO,GAAG,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;CACF","file":"expression/reference/PropObjectReferenceExpr.js","sourcesContent":["import { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { Expr0 } from \"../Expr0.js\";\nimport { ObjectReferenceExpr } from \"./ObjectReferenceExpr.js\";\nimport { ObjectAccessor } from \"../../context/ObjectAccessor.js\";\nimport { ExprKind } from \"../ExprKind\";\n\nexport class PropObjectReferenceExpr\n extends Expr0<ObjectAccessor>\n implements ObjectReferenceExpr\n{\n constructor() {\n super(ExprKind.REF_PROPERTY);\n }\n\n doEvaluate(ctx: IfcExpressionContext): ObjectAccessor {\n return ctx.resolvePropRef();\n }\n}\n"]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Expr2 } from "../Expr2.js";
|
|
2
2
|
import { StringValue } from "../../value/StringValue.js";
|
|
3
|
+
import { ExprKind } from "../ExprKind";
|
|
3
4
|
export class StringConcatExpr extends Expr2 {
|
|
4
5
|
constructor(left, right) {
|
|
5
|
-
super(left, right);
|
|
6
|
+
super(ExprKind.STR_CONCAT, left, right);
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
return StringValue.of(
|
|
8
|
+
calculateResult(ctx, localCtx, left, right) {
|
|
9
|
+
return StringValue.of(left.getValue() + right.getValue());
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=StringConcatExpr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/string/StringConcatExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"sources":["expression/string/StringConcatExpr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,gBAAiB,SAAQ,KAIrC;IACC,YAAY,IAAuB,EAAE,KAAwB;QAC3D,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe,CACb,GAAyB,EACzB,QAA0B,EAC1B,IAAiB,EACjB,KAAkB;QAElB,OAAO,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF","file":"expression/string/StringConcatExpr.js","sourcesContent":["import { Expr2 } from \"../Expr2.js\";\nimport { Expr } from \"../Expr.js\";\nimport { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { StringValue } from \"../../value/StringValue.js\";\nimport { ExprKind } from \"../ExprKind\";\n\nexport class StringConcatExpr extends Expr2<\n StringValue,\n StringValue,\n StringValue\n> {\n constructor(left: Expr<StringValue>, right: Expr<StringValue>) {\n super(ExprKind.STR_CONCAT, left, right);\n }\n\n calculateResult(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>,\n left: StringValue,\n right: StringValue\n ): StringValue {\n return StringValue.of(left.getValue() + right.getValue());\n }\n}\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { LiteralExpr } from "../LiteralExpr";
|
|
2
|
+
import { ExprKind } from "../ExprKind";
|
|
3
|
+
export class StringLiteralExpr extends LiteralExpr {
|
|
3
4
|
constructor(value) {
|
|
4
|
-
super(value);
|
|
5
|
+
super(ExprKind.STR_LITERAL, value);
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
calculateResult(ctx) {
|
|
7
8
|
return this.value;
|
|
8
9
|
}
|
|
9
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/string/StringLiteralExpr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["expression/string/StringLiteralExpr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,iBAAkB,SAAQ,WAAqC;IAC1E,YAAY,KAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,GAAyB;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF","file":"expression/string/StringLiteralExpr.js","sourcesContent":["import { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { StringValue } from \"../../value/StringValue.js\";\nimport { LiteralExpr } from \"../LiteralExpr\";\nimport { ExprKind } from \"../ExprKind\";\n\nexport class StringLiteralExpr extends LiteralExpr<StringValue, StringValue> {\n constructor(value: StringValue) {\n super(ExprKind.STR_LITERAL, value);\n }\n\n calculateResult(ctx: IfcExpressionContext): StringValue {\n return this.value;\n }\n}\n"]}
|