ifc-expressions 0.3.1 → 0.3.3
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/IfcExpression.d.ts +3 -2
- package/dist/cjs/IfcExpression.js +6 -1
- package/dist/cjs/IfcExpression.js.map +1 -1
- package/dist/cjs/expression/Expr0.js +4 -4
- package/dist/cjs/expression/Expr0.js.map +1 -1
- package/dist/cjs/expression/Expr1.js +10 -10
- package/dist/cjs/expression/Expr1.js.map +1 -1
- package/dist/cjs/expression/Expr2.js +13 -13
- package/dist/cjs/expression/Expr2.js.map +1 -1
- package/dist/cjs/expression/Expr2LeftBeforeRight.js +15 -15
- package/dist/cjs/expression/Expr2LeftBeforeRight.js.map +1 -1
- package/dist/cjs/expression/ExprBase.js +3 -3
- package/dist/cjs/expression/ExprBase.js.map +1 -1
- package/dist/cjs/expression/ExprEvalResult.js +2 -2
- package/dist/cjs/expression/ExprEvalResult.js.map +1 -1
- package/dist/cjs/expression/LiteralExpr.js +4 -4
- package/dist/cjs/expression/LiteralExpr.js.map +1 -1
- package/dist/cjs/expression/function/Func.js +9 -9
- package/dist/cjs/expression/function/Func.js.map +1 -1
- package/dist/cjs/expression/function/FuncArg.js +2 -2
- package/dist/cjs/expression/function/FuncArg.js.map +1 -1
- package/dist/cjs/expression/function/FunctionExpr.js +5 -5
- package/dist/cjs/expression/function/FunctionExpr.js.map +1 -1
- package/dist/cjs/expression/function/IfcExpressionFunctions.js +4 -4
- package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgBase.js +2 -2
- package/dist/cjs/expression/function/arg/FuncArgBase.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgInt.js +5 -5
- package/dist/cjs/expression/function/arg/FuncArgInt.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgNumeric.js +4 -4
- package/dist/cjs/expression/function/arg/FuncArgNumeric.js.map +1 -1
- package/dist/cjs/expression/function/impl/MAP.js +6 -6
- package/dist/cjs/expression/function/impl/MAP.js.map +1 -1
- package/dist/cjs/expression/numeric/DivideExpr.js +2 -2
- package/dist/cjs/expression/numeric/DivideExpr.js.map +1 -1
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js +7 -7
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js +9 -9
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -1
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js +14 -14
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js.map +1 -1
- package/dist/cjs/expression/structure/ArrayExpr.js +3 -3
- package/dist/cjs/expression/structure/ArrayExpr.js.map +1 -1
- package/dist/expression/Expr0.d.ts +2 -2
- package/dist/expression/Expr1.d.ts +2 -2
- package/dist/expression/Expr2.d.ts +2 -2
- package/dist/expression/Expr2LeftBeforeRight.d.ts +2 -2
- package/dist/expression/ExprBase.d.ts +1 -1
- package/dist/expression/LiteralExpr.d.ts +2 -2
- package/dist/expression/function/Func.d.ts +1 -1
- package/dist/expression/function/IfcExpressionFunctions.d.ts +1 -1
- package/dist/expression/function/arg/FuncArgBase.d.ts +1 -1
- package/dist/expression/function/arg/FuncArgInt.d.ts +2 -2
- package/dist/expression/function/arg/FuncArgNumeric.d.ts +2 -2
- package/dist/expression/function/impl/MAP.d.ts +1 -1
- package/dist/expression/numeric/DivideExpr.d.ts +1 -1
- package/dist/expression/reference/AttributeReferenceExpr.d.ts +1 -1
- package/dist/expression/reference/NestedObjectChainEndExpr.d.ts +1 -1
- package/dist/expression/reference/NestedObjectChainExpr.d.ts +1 -1
- package/dist/expression/structure/ArrayExpr.d.ts +1 -1
- package/dist/mjs/IfcExpression.js +3 -1
- package/dist/mjs/IfcExpression.js.map +1 -1
- package/dist/mjs/expression/Expr0.js +2 -2
- package/dist/mjs/expression/Expr0.js.map +1 -1
- package/dist/mjs/expression/Expr1.js +3 -3
- package/dist/mjs/expression/Expr1.js.map +1 -1
- package/dist/mjs/expression/Expr2.js +3 -3
- package/dist/mjs/expression/Expr2.js.map +1 -1
- package/dist/mjs/expression/Expr2LeftBeforeRight.js +3 -3
- package/dist/mjs/expression/Expr2LeftBeforeRight.js.map +1 -1
- package/dist/mjs/expression/ExprBase.js +1 -1
- package/dist/mjs/expression/ExprBase.js.map +1 -1
- package/dist/mjs/expression/ExprEvalResult.js +1 -1
- package/dist/mjs/expression/ExprEvalResult.js.map +1 -1
- package/dist/mjs/expression/LiteralExpr.js +2 -2
- package/dist/mjs/expression/LiteralExpr.js.map +1 -1
- package/dist/mjs/expression/function/Func.js +2 -2
- package/dist/mjs/expression/function/Func.js.map +1 -1
- package/dist/mjs/expression/function/FuncArg.js +1 -1
- package/dist/mjs/expression/function/FuncArg.js.map +1 -1
- package/dist/mjs/expression/function/FunctionExpr.js +2 -2
- package/dist/mjs/expression/function/FunctionExpr.js.map +1 -1
- package/dist/mjs/expression/function/IfcExpressionFunctions.js +2 -2
- package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgBase.js +1 -1
- package/dist/mjs/expression/function/arg/FuncArgBase.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgInt.js +2 -2
- package/dist/mjs/expression/function/arg/FuncArgInt.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgNumeric.js +2 -2
- package/dist/mjs/expression/function/arg/FuncArgNumeric.js.map +1 -1
- package/dist/mjs/expression/function/impl/MAP.js +1 -1
- package/dist/mjs/expression/function/impl/MAP.js.map +1 -1
- package/dist/mjs/expression/numeric/DivideExpr.js +1 -1
- package/dist/mjs/expression/numeric/DivideExpr.js.map +1 -1
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js +2 -2
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js +3 -3
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -1
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js +3 -3
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js.map +1 -1
- package/dist/mjs/expression/structure/ArrayExpr.js +1 -1
- package/dist/mjs/expression/structure/ArrayExpr.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/function/FunctionExpr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/function/FunctionExpr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,MAAM,OAAO,YAAa,SAAQ,KAA2B;IAK3D,YAAY,IAAY,EAAE,QAAmC;QAC3D,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SACnD;IACH,CAAC;IAES,UAAU,CAClB,GAAyB,EACzB,QAA0B;QAE1B,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC5D,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACpC;QACD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,aAAa,CAC3D,IAAI,CAAC,IAAI,EACT,iBAAiB,CAClB,CAAC;QACF,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,EAAE;YACvC,OAAO,gBAAgB,CAAC,MAAM,CAAC;SAChC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACF","file":"expression/function/FunctionExpr.js","sourcesContent":["import { LiteralValueAnyArity } from \"../../value/LiteralValueAnyArity.js\";\nimport { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport { ExprEvalError, isExprEvalSuccess } from \"../ExprEvalResult.js\";\nimport { Expr } from \"../Expr.js\";\nimport { ExprKind } from \"../ExprKind.js\";\nimport { Expr0 } from \"../Expr0.js\";\nimport { LiteralValue } from \"../../value/LiteralValue.js\";\nimport { Func } from \"./Func.js\";\nimport { IfcExpressionFunctions } from \"./IfcExpressionFunctions.js\";\nimport { isNullish } from \"../../IfcExpressionUtils.js\";\n\nexport class FunctionExpr extends Expr0<LiteralValueAnyArity> {\n private name: string;\n private elements: Array<Expr<LiteralValue>>;\n private functionImplementation: Func;\n\n constructor(name: string, elements: Array<Expr<LiteralValue>>) {\n super(ExprKind.ARRAY);\n this.name = name;\n this.elements = elements;\n this.functionImplementation = IfcExpressionFunctions.getFunction(this.name);\n if (isNullish(this.functionImplementation)) {\n throw new Error(`No such function: ${this.name}`);\n }\n }\n\n protected doEvaluate(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>\n ): ExprEvalError | LiteralValueAnyArity {\n const functionArguments = [];\n for (let i = 0; i < this.elements.length; i++) {\n const evalResult = this.elements[i].evaluate(ctx, localCtx);\n functionArguments.push(evalResult);\n }\n const evaluationResult = IfcExpressionFunctions.applyFunction(\n this.name,\n functionArguments\n );\n if (isExprEvalSuccess(evaluationResult)) {\n return evaluationResult.result;\n }\n return evaluationResult;\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ExprEvalFunctionEvaluationErrorObj, ExprEvalStatus, } from "../ExprEvalResult";
|
|
2
|
-
import { isNullish } from "../../IfcExpressionUtils";
|
|
1
|
+
import { ExprEvalFunctionEvaluationErrorObj, ExprEvalStatus, } from "../ExprEvalResult.js";
|
|
2
|
+
import { isNullish } from "../../IfcExpressionUtils.js";
|
|
3
3
|
import { ExprKind } from "../ExprKind.js";
|
|
4
4
|
import { MAP } from "./impl/MAP.js";
|
|
5
5
|
import { ROUND } from "./impl/ROUND.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/function/IfcExpressionFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAElC,cAAc,GACf,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/function/IfcExpressionFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAElC,cAAc,GACf,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CACpC,IAAI,GAAG,CAAe;IACpB,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC;IAClB,CAAC,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;CACvB,CAAC,CACH,CAAC;AAEF,MAAM,OAAO,sBAAsB;IAC1B,MAAM,CAAC,WAAW,CAAC,IAAY;QACpC,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,aAAa,CACzB,IAAY,EACZ,YAAyD;QAEzD,MAAM,IAAI,GAAG,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,IAAI,kCAAkC,CAC3C,QAAQ,CAAC,QAAQ,EACjB,cAAc,CAAC,gBAAgB,EAC/B,oBAAoB,IAAI,EAAE,EAC1B,IAAI,CACL,CAAC;SACH;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;CACF","file":"expression/function/IfcExpressionFunctions.js","sourcesContent":["import {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n} from \"../ExprEvalResult.js\";\nimport { LiteralValueAnyArity } from \"../../value/LiteralValueAnyArity.js\";\nimport { Func } from \"./Func.js\";\nimport { isNullish } from \"../../IfcExpressionUtils.js\";\nimport { ExprKind } from \"../ExprKind.js\";\nimport { MAP } from \"./impl/MAP.js\";\nimport { ROUND } from \"./impl/ROUND.js\";\n\nconst builtinFunctions = Object.freeze(\n new Map<string, Func>([\n [\"MAP\", new MAP()],\n [\"ROUND\", new ROUND()],\n ])\n);\n\nexport class IfcExpressionFunctions {\n public static getFunction(name: string) {\n return builtinFunctions.get(name);\n }\n\n public static applyFunction(\n name: string,\n functionArgs: Array<ExprEvalResult<LiteralValueAnyArity>>\n ): ExprEvalResult<LiteralValueAnyArity> {\n const func = IfcExpressionFunctions.getFunction(name);\n if (isNullish(func)) {\n return new ExprEvalFunctionEvaluationErrorObj(\n ExprKind.FUNCTION,\n ExprEvalStatus.UNKNOWN_FUNCTION,\n `No such function ${name}`,\n name\n );\n }\n return func.evaluate(functionArgs);\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FuncArg } from "../FuncArg.js";
|
|
2
|
-
import { isExprEvalSuccess, } from "../../ExprEvalResult";
|
|
2
|
+
import { isExprEvalSuccess, } from "../../ExprEvalResult.js";
|
|
3
3
|
export class FuncArgBase extends FuncArg {
|
|
4
4
|
constructor(required, name, defaultValue) {
|
|
5
5
|
super(required, name, defaultValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/function/arg/FuncArgBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAIL,iBAAiB,GAClB,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/function/arg/FuncArgBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAIL,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,OAAgB,WAAe,SAAQ,OAAU;IACrD,YAAY,QAAiB,EAAE,IAAY,EAAE,YAAgB;QAC3D,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CACZ,eAAqD;QAErD,IAAI,iBAAiB,CAAC,eAAe,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;SACpD;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACO,qBAAqB,CAC7B,eAAsD;QAEtD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACO,iBAAiB,CACzB,eAA8B;QAE9B,OAAO,eAAe,CAAC;IACzB,CAAC;CACF","file":"expression/function/arg/FuncArgBase.js","sourcesContent":["import { FuncArg } from \"../FuncArg.js\";\nimport {\n ExprEvalError,\n ExprEvalResult,\n ExprEvalSuccess,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { LiteralValueAnyArity } from \"../../../value/LiteralValueAnyArity.js\";\n\nexport abstract class FuncArgBase<T> extends FuncArg<T> {\n constructor(required: boolean, name: string, defaultValue?: T) {\n super(required, name, defaultValue);\n }\n\n transformValue(\n invocationValue: ExprEvalResult<LiteralValueAnyArity>\n ): ExprEvalResult<LiteralValueAnyArity> {\n if (isExprEvalSuccess(invocationValue)) {\n return this.transformForTypeCheck(invocationValue);\n }\n return this.transformForError(invocationValue);\n }\n\n /**\n * Override to type-check the successfully evaluated invocationValue.\n * @param result\n * @protected\n */\n protected transformForTypeCheck(\n invocationValue: ExprEvalSuccess<LiteralValueAnyArity>\n ): ExprEvalResult<LiteralValueAnyArity> {\n return invocationValue;\n }\n\n /**\n * Override to transform the error result obtained from evaluating the invocation value.\n * @param invocationValue\n * @protected\n */\n protected transformForError(\n invocationValue: ExprEvalError\n ): ExprEvalResult<LiteralValueAnyArity> {\n return invocationValue;\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FuncArgBase } from "./FuncArgBase";
|
|
2
|
-
import { ExprEvalTypeErrorObj, } from "../../ExprEvalResult";
|
|
1
|
+
import { FuncArgBase } from "./FuncArgBase.js";
|
|
2
|
+
import { ExprEvalTypeErrorObj, } from "../../ExprEvalResult.js";
|
|
3
3
|
import { ExprKind } from "../../ExprKind.js";
|
|
4
4
|
import { NumericValue } from "../../../value/NumericValue.js";
|
|
5
5
|
export class FuncArgInt extends FuncArgBase {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/function/arg/FuncArgInt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/function/arg/FuncArgInt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAGL,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,OAAO,UAAW,SAAQ,WAAyB;IACvD,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,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC5C,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,oCAAoC,MAAM,EAAE,EACjE,MAAM,CACP,CAAC;SACH;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;QAClC,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;YACrB,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,qBAAqB,IAAI,CAAC,IAAI,gCAAgC,KAAK,EAAE,EACrE,KAAK,CACN,CAAC;IACJ,CAAC;CACF","file":"expression/function/arg/FuncArgInt.js","sourcesContent":["import { FuncArgBase } from \"./FuncArgBase.js\";\nimport { LiteralValueAnyArity } from \"../../../value/LiteralValueAnyArity.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { NumericValue } from \"../../../value/NumericValue.js\";\n\nexport class FuncArgInt 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 if (!NumericValue.isNumericValueType(result)) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} must be a NumericValue, but was ${result}`,\n result\n );\n }\n const value = result.numericValue;\n if (value.isInteger()) {\n return invocationValue;\n }\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Value of argument ${this.name} must be an integer, but was ${value}`,\n value\n );\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FuncArgBase } from "./FuncArgBase";
|
|
2
|
-
import { ExprEvalTypeErrorObj, } from "../../ExprEvalResult";
|
|
1
|
+
import { FuncArgBase } from "./FuncArgBase.js";
|
|
2
|
+
import { ExprEvalTypeErrorObj, } from "../../ExprEvalResult.js";
|
|
3
3
|
import { ExprKind } from "../../ExprKind.js";
|
|
4
4
|
import { Decimal } from "decimal.js";
|
|
5
5
|
export class FuncArgNumeric extends FuncArgBase {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/function/arg/FuncArgNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/function/arg/FuncArgNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAGL,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,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.js\";\nimport { LiteralValueAnyArity } from \"../../../value/LiteralValueAnyArity.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\";\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"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Func } from "../Func.js";
|
|
2
|
-
import { ExprEvalFunctionEvaluationErrorObj, ExprEvalStatus, ExprEvalSuccessObj, ExprEvalTypeErrorObj, isExprEvalSuccess, } from "../../ExprEvalResult";
|
|
2
|
+
import { ExprEvalFunctionEvaluationErrorObj, ExprEvalStatus, ExprEvalSuccessObj, ExprEvalTypeErrorObj, isExprEvalSuccess, } from "../../ExprEvalResult.js";
|
|
3
3
|
import { isNullish } from "../../../IfcExpression.js";
|
|
4
4
|
import { FuncArg } from "../FuncArg.js";
|
|
5
5
|
import { ExprKind } from "../../ExprKind.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/function/impl/MAP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EACL,kCAAkC,EAElC,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,
|
|
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.js\";\nimport { LiteralValueAnyArity } from \"../../../value/LiteralValueAnyArity.js\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n ExprEvalTypeErrorObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { isNullish, LiteralValue } from \"../../../IfcExpression.js\";\nimport { FuncArg } from \"../FuncArg.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { ArrayValue } from \"../../../value/ArrayValue.js\";\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"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Expr2 } from "../Expr2.js";
|
|
2
2
|
import { NumericValue } from "../../value/NumericValue.js";
|
|
3
3
|
import { ExprKind } from "../ExprKind.js";
|
|
4
|
-
import { ExprEvalError2Obj, ExprEvalStatus, } from "../ExprEvalResult";
|
|
4
|
+
import { ExprEvalError2Obj, ExprEvalStatus, } from "../ExprEvalResult.js";
|
|
5
5
|
export class DivideExpr extends Expr2 {
|
|
6
6
|
constructor(left, right) {
|
|
7
7
|
super(ExprKind.NUM_DIVIDE, left, right);
|
|
@@ -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;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,iBAAiB,EAEjB,cAAc,GACf,MAAM,
|
|
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,gBAAgB,CAAC;AAC1C,OAAO,EAEL,iBAAiB,EAEjB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,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.js\";\nimport {\n ExprEvalError,\n ExprEvalError2Obj,\n ExprEvalResult,\n ExprEvalStatus,\n} from \"../ExprEvalResult.js\";\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,7 +1,7 @@
|
|
|
1
1
|
import { Expr2 } from "../Expr2.js";
|
|
2
2
|
import { ExprKind } from "../ExprKind.js";
|
|
3
|
-
import { ExprEvalError2Obj, ExprEvalRefChainErrorObj, ExprEvalStatus, isExprEvalRefChainError, isExprEvalSuccess, } from "../ExprEvalResult";
|
|
4
|
-
import { LocalContextKeys } from "../LocalContextKeys";
|
|
3
|
+
import { ExprEvalError2Obj, ExprEvalRefChainErrorObj, ExprEvalStatus, isExprEvalRefChainError, isExprEvalSuccess, } from "../ExprEvalResult.js";
|
|
4
|
+
import { LocalContextKeys } from "../LocalContextKeys.js";
|
|
5
5
|
export class AttributeReferenceExpr extends Expr2 {
|
|
6
6
|
constructor(left, right) {
|
|
7
7
|
super(ExprKind.REF_ATTRIBUTE, left, right);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/reference/AttributeReferenceExpr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,iBAAiB,EACjB,wBAAwB,EAExB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/reference/AttributeReferenceExpr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,iBAAiB,EACjB,wBAAwB,EAExB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,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.js\";\nimport {\n ExprEvalError,\n ExprEvalError2Obj,\n ExprEvalRefChainErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n isExprEvalRefChainError,\n isExprEvalSuccess,\n} from \"../ExprEvalResult.js\";\nimport { Expr } from \"../Expr.js\";\nimport { LocalContextKeys } from \"../LocalContextKeys.js\";\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,8 +1,8 @@
|
|
|
1
1
|
import { ExprKind } from "../ExprKind.js";
|
|
2
|
-
import { ExprEvalErrorObj, ExprEvalRefChainErrorObj, ExprEvalStatus, } from "../ExprEvalResult";
|
|
3
|
-
import { isNullish } from "../../IfcExpressionUtils";
|
|
2
|
+
import { ExprEvalErrorObj, ExprEvalRefChainErrorObj, ExprEvalStatus, } from "../ExprEvalResult.js";
|
|
3
|
+
import { isNullish } from "../../IfcExpressionUtils.js";
|
|
4
4
|
import { Expr0 } from "../Expr0.js";
|
|
5
|
-
import { LocalContextKeys } from "../LocalContextKeys";
|
|
5
|
+
import { LocalContextKeys } from "../LocalContextKeys.js";
|
|
6
6
|
export class NestedObjectChainEndExpr extends Expr0 {
|
|
7
7
|
constructor(value) {
|
|
8
8
|
super(ExprKind.REF_NESTED_OBJECT_CHAIN_END);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/reference/NestedObjectChainEndExpr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/reference/NestedObjectChainEndExpr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,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.js\";\nimport {\n ExprEvalError,\n ExprEvalErrorObj,\n ExprEvalRefChainErrorObj,\n ExprEvalStatus,\n} from \"../ExprEvalResult.js\";\nimport { isNullish } from \"../../IfcExpressionUtils.js\";\nimport { Expr0 } from \"../Expr0.js\";\nimport { LocalContextKeys } from \"../LocalContextKeys.js\";\nimport { ObjectAccessor } from \"../../context/ObjectAccessor.js\";\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,8 +1,8 @@
|
|
|
1
1
|
import { ExprKind } from "../ExprKind.js";
|
|
2
|
-
import { ExprEvalErrorObj, ExprEvalRefChainErrorObj, ExprEvalStatus, isExprEvalRefChainError, mapErrorObjectToMessage, } from "../ExprEvalResult";
|
|
2
|
+
import { ExprEvalErrorObj, ExprEvalRefChainErrorObj, ExprEvalStatus, isExprEvalRefChainError, mapErrorObjectToMessage, } from "../ExprEvalResult.js";
|
|
3
3
|
import { Expr1 } from "../Expr1.js";
|
|
4
|
-
import { isNullish } from "../../IfcExpressionUtils";
|
|
5
|
-
import { LocalContextKeys } from "../LocalContextKeys";
|
|
4
|
+
import { isNullish } from "../../IfcExpressionUtils.js";
|
|
5
|
+
import { LocalContextKeys } from "../LocalContextKeys.js";
|
|
6
6
|
export class NestedObjectChainExpr extends Expr1 {
|
|
7
7
|
constructor(literalObjectRef, nextLink) {
|
|
8
8
|
super(ExprKind.REF_NESTED_OBJECT_CHAIN, nextLink);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/reference/NestedObjectChainExpr.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EAExB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/reference/NestedObjectChainExpr.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,gBAAgB,EAChB,wBAAwB,EAExB,cAAc,EACd,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,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.js\";\nimport {\n ExprEvalError,\n ExprEvalErrorObj,\n ExprEvalRefChainErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n isExprEvalRefChainError,\n mapErrorObjectToMessage,\n} from \"../ExprEvalResult.js\";\nimport { Expr1 } from \"../Expr1.js\";\nimport { isNullish } from \"../../IfcExpressionUtils.js\";\nimport { LocalContextKeys } from \"../LocalContextKeys.js\";\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,4 +1,4 @@
|
|
|
1
|
-
import { ExprEvalConsequentialError1Obj, isExprEvalError, } from "../ExprEvalResult";
|
|
1
|
+
import { ExprEvalConsequentialError1Obj, isExprEvalError, } from "../ExprEvalResult.js";
|
|
2
2
|
import { ExprKind } from "../ExprKind.js";
|
|
3
3
|
import { Expr0 } from "../Expr0.js";
|
|
4
4
|
import { ArrayValue } from "../../value/ArrayValue.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["expression/structure/ArrayExpr.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAE9B,eAAe,GAChB,MAAM,
|
|
1
|
+
{"version":3,"sources":["expression/structure/ArrayExpr.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAE9B,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,MAAM,OAAO,SAAU,SAAQ,KAAiB;IAG9C,YAAY,QAAmC;QAC7C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAES,UAAU,CAClB,GAAyB,EACzB,QAA0B;QAE1B,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE;gBAC/B,OAAO,IAAI,8BAA8B,CACvC,IAAI,CAAC,OAAO,EAAE,EACd,UAAU,EACV,sDAAsD,CAAC,EAAE,CAC1D,CAAC;aACH;YACD,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;CACF","file":"expression/structure/ArrayExpr.js","sourcesContent":["import { IfcExpressionContext } from \"../../context/IfcExpressionContext.js\";\nimport {\n ExprEvalConsequentialError1Obj,\n ExprEvalError,\n isExprEvalError,\n} from \"../ExprEvalResult.js\";\nimport { Expr } from \"../Expr.js\";\nimport { ExprKind } from \"../ExprKind.js\";\nimport { Expr0 } from \"../Expr0.js\";\nimport { ArrayValue } from \"../../value/ArrayValue.js\";\nimport { LiteralValue } from \"../../value/LiteralValue.js\";\n\nexport class ArrayExpr extends Expr0<ArrayValue> {\n private elements: Array<Expr<LiteralValue>>;\n\n constructor(elements: Array<Expr<LiteralValue>>) {\n super(ExprKind.ARRAY);\n this.elements = elements;\n }\n\n protected doEvaluate(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>\n ): ExprEvalError | ArrayValue {\n const evaluatedResult = [];\n for (let i = 0; i < this.elements.length; i++) {\n const evalResult = this.elements[i].evaluate(ctx, localCtx);\n if (isExprEvalError(evalResult)) {\n return new ExprEvalConsequentialError1Obj(\n this.getKind(),\n evalResult,\n `Error evaluating array element at 0-based position ${i}`\n );\n }\n evaluatedResult.push(evalResult.result);\n }\n return new ArrayValue(evaluatedResult);\n }\n}\n"]}
|