ifc-expressions 2.0.1-beta.7 → 2.0.1
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/E.d.ts +3 -0
- package/dist/cjs/E.js +4 -0
- package/dist/cjs/E.js.map +1 -1
- package/dist/cjs/compiler/ExprCompiler.js +6 -0
- package/dist/cjs/compiler/ExprCompiler.js.map +1 -1
- package/dist/cjs/compiler/IfcExpressionValidationListener.js +6 -3
- package/dist/cjs/compiler/IfcExpressionValidationListener.js.map +1 -1
- package/dist/cjs/compiler/TypeManager.js +8 -0
- package/dist/cjs/compiler/TypeManager.js.map +1 -1
- package/dist/cjs/error/ExceptionToExprEvalErrorMapper.js +3 -0
- package/dist/cjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -1
- package/dist/cjs/error/FunctionArgumentException.js +14 -0
- package/dist/cjs/error/FunctionArgumentException.js.map +1 -0
- package/dist/cjs/error/MissingFunctionArgumentException.js +5 -7
- package/dist/cjs/error/MissingFunctionArgumentException.js.map +1 -1
- package/dist/cjs/error/SpuriousFunctionArgumentException.js +12 -0
- package/dist/cjs/error/SpuriousFunctionArgumentException.js.map +1 -0
- package/dist/cjs/error/mapper/MissingFunctionArgumentExceptionMapper.js.map +1 -1
- package/dist/cjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js +12 -0
- package/dist/cjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js.map +1 -0
- package/dist/cjs/expression/ExprEvalResult.js +14 -4
- package/dist/cjs/expression/ExprEvalResult.js.map +1 -1
- package/dist/cjs/expression/ExprKind.js +5 -4
- package/dist/cjs/expression/ExprKind.js.map +1 -1
- package/dist/cjs/expression/boolean/AndExpr.js +3 -11
- package/dist/cjs/expression/boolean/AndExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/BinaryBooleanOpExpr.js +23 -0
- package/dist/cjs/expression/boolean/BinaryBooleanOpExpr.js.map +1 -0
- package/dist/cjs/expression/boolean/LogicalLiteralExpr.js +35 -0
- package/dist/cjs/expression/boolean/LogicalLiteralExpr.js.map +1 -0
- package/dist/cjs/expression/boolean/NotExpr.js +3 -5
- package/dist/cjs/expression/boolean/NotExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/OrExpr.js +3 -11
- package/dist/cjs/expression/boolean/OrExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/XorExpr.js +4 -14
- package/dist/cjs/expression/boolean/XorExpr.js.map +1 -1
- package/dist/cjs/expression/comparison/EqualsExpr.js +1 -1
- package/dist/cjs/expression/comparison/EqualsExpr.js.map +1 -1
- package/dist/cjs/expression/comparison/NotEqualsExpr.js +1 -1
- package/dist/cjs/expression/comparison/NotEqualsExpr.js.map +1 -1
- package/dist/cjs/expression/function/Func.js +3 -5
- package/dist/cjs/expression/function/Func.js.map +1 -1
- package/dist/cjs/expression/function/IfcExpressionFunctions.js +6 -4
- package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgLogicalOrBoolean.js +26 -0
- package/dist/cjs/expression/function/arg/FuncArgLogicalOrBoolean.js.map +1 -0
- package/dist/cjs/expression/function/impl/FuncBooleanBinary.js +7 -8
- package/dist/cjs/expression/function/impl/FuncBooleanBinary.js.map +1 -1
- package/dist/cjs/expression/function/impl/IF.js +54 -6
- package/dist/cjs/expression/function/impl/IF.js.map +1 -1
- package/dist/cjs/expression/function/impl/NOT.js +4 -6
- package/dist/cjs/expression/function/impl/NOT.js.map +1 -1
- package/dist/cjs/expression/function/impl/TOBOOLEAN.js +1 -1
- package/dist/cjs/expression/function/impl/TOBOOLEAN.js.map +1 -1
- package/dist/cjs/expression/function/impl/TOLOGICAL.js +39 -0
- package/dist/cjs/expression/function/impl/TOLOGICAL.js.map +1 -0
- package/dist/cjs/expression/function/impl/TONUMERIC.js +1 -1
- package/dist/cjs/expression/function/impl/TONUMERIC.js.map +1 -1
- package/dist/cjs/gen/parser/IfcExpressionLexer.js +75 -65
- package/dist/cjs/gen/parser/IfcExpressionLexer.js.map +1 -1
- package/dist/cjs/gen/parser/IfcExpressionListener.js.map +1 -1
- package/dist/cjs/gen/parser/IfcExpressionParser.js +195 -121
- package/dist/cjs/gen/parser/IfcExpressionParser.js.map +1 -1
- package/dist/cjs/gen/parser/IfcExpressionVisitor.js.map +1 -1
- package/dist/cjs/type/Types.js +6 -0
- package/dist/cjs/type/Types.js.map +1 -1
- package/dist/cjs/value/BooleanValue.js +65 -4
- package/dist/cjs/value/BooleanValue.js.map +1 -1
- package/dist/cjs/value/Logical.js +2 -0
- package/dist/cjs/value/Logical.js.map +1 -0
- package/dist/cjs/value/LogicalValue.js +110 -7
- package/dist/cjs/value/LogicalValue.js.map +1 -1
- package/dist/compiler/ExprCompiler.d.ts +2 -1
- package/dist/compiler/IfcExpressionValidationListener.d.ts +2 -1
- package/dist/compiler/TypeManager.d.ts +2 -0
- package/dist/error/FunctionArgumentException.d.ts +7 -0
- package/dist/error/MissingFunctionArgumentException.d.ts +3 -6
- package/dist/error/SpuriousFunctionArgumentException.d.ts +4 -0
- package/dist/error/mapper/MissingFunctionArgumentExceptionMapper.d.ts +2 -2
- package/dist/error/mapper/SpuriousFunctionArgumentExceptionMapper.d.ts +6 -0
- package/dist/expression/ExprEvalResult.d.ts +9 -2
- package/dist/expression/ExprKind.d.ts +5 -4
- package/dist/expression/boolean/AndExpr.d.ts +4 -8
- package/dist/expression/boolean/BinaryBooleanOpExpr.d.ts +14 -0
- package/dist/expression/boolean/LogicalLiteralExpr.d.ts +12 -0
- package/dist/expression/boolean/NotExpr.d.ts +4 -3
- package/dist/expression/boolean/OrExpr.d.ts +4 -8
- package/dist/expression/boolean/XorExpr.d.ts +4 -8
- package/dist/expression/function/Func.d.ts +2 -1
- package/dist/expression/function/arg/FuncArgLogicalOrBoolean.d.ts +12 -0
- package/dist/expression/function/impl/FuncBooleanBinary.d.ts +2 -2
- package/dist/expression/function/impl/IF.d.ts +5 -0
- package/dist/expression/function/impl/TOLOGICAL.d.ts +13 -0
- package/dist/gen/parser/IfcExpressionLexer.d.ts +8 -7
- package/dist/gen/parser/IfcExpressionListener.d.ts +11 -0
- package/dist/gen/parser/IfcExpressionParser.d.ts +20 -8
- package/dist/gen/parser/IfcExpressionVisitor.d.ts +7 -0
- package/dist/mjs/E.js +4 -0
- package/dist/mjs/E.js.map +1 -1
- package/dist/mjs/compiler/ExprCompiler.js +6 -0
- package/dist/mjs/compiler/ExprCompiler.js.map +1 -1
- package/dist/mjs/compiler/IfcExpressionValidationListener.js +6 -3
- package/dist/mjs/compiler/IfcExpressionValidationListener.js.map +1 -1
- package/dist/mjs/compiler/TypeManager.js +8 -0
- package/dist/mjs/compiler/TypeManager.js.map +1 -1
- package/dist/mjs/error/ExceptionToExprEvalErrorMapper.js +3 -0
- package/dist/mjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -1
- package/dist/mjs/error/FunctionArgumentException.js +10 -0
- package/dist/mjs/error/FunctionArgumentException.js.map +1 -0
- package/dist/mjs/error/MissingFunctionArgumentException.js +5 -7
- package/dist/mjs/error/MissingFunctionArgumentException.js.map +1 -1
- package/dist/mjs/error/SpuriousFunctionArgumentException.js +8 -0
- package/dist/mjs/error/SpuriousFunctionArgumentException.js.map +1 -0
- package/dist/mjs/error/mapper/MissingFunctionArgumentExceptionMapper.js.map +1 -1
- package/dist/mjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js +8 -0
- package/dist/mjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js.map +1 -0
- package/dist/mjs/expression/ExprEvalResult.js +12 -3
- package/dist/mjs/expression/ExprEvalResult.js.map +1 -1
- package/dist/mjs/expression/ExprKind.js +5 -4
- package/dist/mjs/expression/ExprKind.js.map +1 -1
- package/dist/mjs/expression/boolean/AndExpr.js +3 -11
- package/dist/mjs/expression/boolean/AndExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/BinaryBooleanOpExpr.js +19 -0
- package/dist/mjs/expression/boolean/BinaryBooleanOpExpr.js.map +1 -0
- package/dist/mjs/expression/boolean/LogicalLiteralExpr.js +31 -0
- package/dist/mjs/expression/boolean/LogicalLiteralExpr.js.map +1 -0
- package/dist/mjs/expression/boolean/NotExpr.js +3 -5
- package/dist/mjs/expression/boolean/NotExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/OrExpr.js +3 -11
- package/dist/mjs/expression/boolean/OrExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/XorExpr.js +4 -14
- package/dist/mjs/expression/boolean/XorExpr.js.map +1 -1
- package/dist/mjs/expression/comparison/EqualsExpr.js +1 -1
- package/dist/mjs/expression/comparison/EqualsExpr.js.map +1 -1
- package/dist/mjs/expression/comparison/NotEqualsExpr.js +1 -1
- package/dist/mjs/expression/comparison/NotEqualsExpr.js.map +1 -1
- package/dist/mjs/expression/function/Func.js +3 -5
- package/dist/mjs/expression/function/Func.js.map +1 -1
- package/dist/mjs/expression/function/IfcExpressionFunctions.js +6 -4
- package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgLogicalOrBoolean.js +22 -0
- package/dist/mjs/expression/function/arg/FuncArgLogicalOrBoolean.js.map +1 -0
- package/dist/mjs/expression/function/impl/FuncBooleanBinary.js +8 -9
- package/dist/mjs/expression/function/impl/FuncBooleanBinary.js.map +1 -1
- package/dist/mjs/expression/function/impl/IF.js +56 -8
- package/dist/mjs/expression/function/impl/IF.js.map +1 -1
- package/dist/mjs/expression/function/impl/NOT.js +4 -6
- package/dist/mjs/expression/function/impl/NOT.js.map +1 -1
- package/dist/mjs/expression/function/impl/TOBOOLEAN.js +1 -1
- package/dist/mjs/expression/function/impl/TOBOOLEAN.js.map +1 -1
- package/dist/mjs/expression/function/impl/TOLOGICAL.js +35 -0
- package/dist/mjs/expression/function/impl/TOLOGICAL.js.map +1 -0
- package/dist/mjs/expression/function/impl/TONUMERIC.js +1 -1
- package/dist/mjs/expression/function/impl/TONUMERIC.js.map +1 -1
- package/dist/mjs/gen/parser/IfcExpressionLexer.js +75 -65
- package/dist/mjs/gen/parser/IfcExpressionLexer.js.map +1 -1
- package/dist/mjs/gen/parser/IfcExpressionListener.js.map +1 -1
- package/dist/mjs/gen/parser/IfcExpressionParser.js +193 -120
- package/dist/mjs/gen/parser/IfcExpressionParser.js.map +1 -1
- package/dist/mjs/gen/parser/IfcExpressionVisitor.js.map +1 -1
- package/dist/mjs/type/Types.js +6 -0
- package/dist/mjs/type/Types.js.map +1 -1
- package/dist/mjs/value/BooleanValue.js +65 -4
- package/dist/mjs/value/BooleanValue.js.map +1 -1
- package/dist/mjs/value/Logical.js +2 -0
- package/dist/mjs/value/Logical.js.map +1 -0
- package/dist/mjs/value/LogicalValue.js +110 -7
- package/dist/mjs/value/LogicalValue.js.map +1 -1
- package/dist/type/Types.d.ts +2 -0
- package/dist/value/BooleanValue.d.ts +15 -2
- package/dist/value/Logical.d.ts +0 -0
- package/dist/value/LogicalValue.d.ts +26 -9
- package/package.json +1 -1
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FuncBooleanBinary = void 0;
|
|
4
|
-
const BooleanValue_js_1 = require("../../../value/BooleanValue.js");
|
|
5
4
|
const Func_js_1 = require("../Func.js");
|
|
6
|
-
const FuncArgBoolean_js_1 = require("../arg/FuncArgBoolean.js");
|
|
7
5
|
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
8
6
|
const Types_js_1 = require("../../../type/Types.js");
|
|
7
|
+
const FuncArgLogicalOrBoolean_js_1 = require("../arg/FuncArgLogicalOrBoolean.js");
|
|
9
8
|
class FuncBooleanBinary extends Func_js_1.Func {
|
|
10
|
-
constructor(name,
|
|
9
|
+
constructor(name, methodName) {
|
|
11
10
|
super(name, [
|
|
12
|
-
new
|
|
13
|
-
new
|
|
11
|
+
new FuncArgLogicalOrBoolean_js_1.FuncArgLogicalOrBoolean(true, FuncBooleanBinary.KEY_LEFT),
|
|
12
|
+
new FuncArgLogicalOrBoolean_js_1.FuncArgLogicalOrBoolean(true, FuncBooleanBinary.KEY_RIGHT),
|
|
14
13
|
]);
|
|
15
|
-
this.
|
|
14
|
+
this.methodName = methodName;
|
|
16
15
|
}
|
|
17
16
|
getReturnType(argumentTypes) {
|
|
18
|
-
return Types_js_1.
|
|
17
|
+
return Types_js_1.Types.or(...argumentTypes);
|
|
19
18
|
}
|
|
20
19
|
calculateResult(callingExpr, evaluatedArguments) {
|
|
21
20
|
const left = evaluatedArguments.get(FuncBooleanBinary.KEY_LEFT);
|
|
22
21
|
const right = evaluatedArguments.get(FuncBooleanBinary.KEY_RIGHT);
|
|
23
|
-
return new ExprEvalResult_js_1.ExprEvalSuccessObj(
|
|
22
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(left[this.methodName].call(left, right));
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
exports.FuncBooleanBinary = FuncBooleanBinary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAGlC,+DAA6E;AAC7E,qDAAqD;AAGrD,kFAA4E;AAG5E,MAAa,iBAAkB,SAAQ,cAAI;IAKzC,YAAY,IAAY,EAAE,UAAkB;QAC1C,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,oDAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAC7D,IAAI,oDAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;SAC/D,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,gBAAK,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;IACpC,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAE9C,CAAC;QACjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAEhD,CAAC;QACjB,OAAO,IAAI,sCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;;AA5BH,8CA6BC;AA5ByB,0BAAQ,GAAG,MAAM,CAAC;AAClB,2BAAS,GAAG,OAAO,CAAC","file":"expression/function/impl/FuncBooleanBinary.js","sourcesContent":["import { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Func } from \"../Func.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean\";\nimport { Logical, LogicalValue } from \"../../../value/LogicalValue\";\n\nexport class FuncBooleanBinary extends Func {\n private static readonly KEY_LEFT = \"left\";\n private static readonly KEY_RIGHT = \"right\";\n private readonly methodName: string;\n\n constructor(name: string, methodName: string) {\n super(name, [\n new FuncArgLogicalOrBoolean(true, FuncBooleanBinary.KEY_LEFT),\n new FuncArgLogicalOrBoolean(true, FuncBooleanBinary.KEY_RIGHT),\n ]);\n this.methodName = methodName;\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Types.or(...argumentTypes);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const left = evaluatedArguments.get(FuncBooleanBinary.KEY_LEFT) as\n | BooleanValue\n | LogicalValue;\n const right = evaluatedArguments.get(FuncBooleanBinary.KEY_RIGHT) as\n | BooleanValue\n | LogicalValue;\n return new ExprEvalSuccessObj(left[this.methodName].call(left, right));\n }\n}\n"]}
|
|
@@ -4,31 +4,79 @@ exports.IF = void 0;
|
|
|
4
4
|
const Func_js_1 = require("../Func.js");
|
|
5
5
|
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
6
|
const Types_js_1 = require("../../../type/Types.js");
|
|
7
|
-
const FuncArgBoolean_js_1 = require("../arg/FuncArgBoolean.js");
|
|
8
7
|
const FuncArgAny_js_1 = require("../arg/FuncArgAny.js");
|
|
8
|
+
const FuncArgLogicalOrBoolean_js_1 = require("../arg/FuncArgLogicalOrBoolean.js");
|
|
9
|
+
const ExprKind_js_1 = require("../../ExprKind.js");
|
|
10
|
+
const SpuriousFunctionArgumentException_js_1 = require("../../../error/SpuriousFunctionArgumentException.js");
|
|
11
|
+
const MissingFunctionArgumentException_js_1 = require("../../../error/MissingFunctionArgumentException.js");
|
|
12
|
+
const LogicalValue_js_1 = require("../../../value/LogicalValue.js");
|
|
9
13
|
class IF extends Func_js_1.Func {
|
|
10
14
|
constructor() {
|
|
11
15
|
super("IF", [
|
|
12
|
-
new
|
|
16
|
+
new FuncArgLogicalOrBoolean_js_1.FuncArgLogicalOrBoolean(true, IF.ARG_NAME_CONDITION),
|
|
13
17
|
new FuncArgAny_js_1.FuncArgAny(true, IF.ARG_NAME_THEN),
|
|
14
18
|
new FuncArgAny_js_1.FuncArgAny(true, IF.ARG_NAME_ELSE),
|
|
19
|
+
new FuncArgAny_js_1.FuncArgAny(false, IF.ARG_NAME_UNKNOWN),
|
|
15
20
|
]);
|
|
16
21
|
}
|
|
17
22
|
getReturnType(argumentTypes) {
|
|
18
|
-
|
|
23
|
+
if (argumentTypes.length == 3) {
|
|
24
|
+
return Types_js_1.Types.or(argumentTypes[1], argumentTypes[2]);
|
|
25
|
+
}
|
|
26
|
+
if (argumentTypes.length == 4) {
|
|
27
|
+
return Types_js_1.Types.or(argumentTypes[1], argumentTypes[2], argumentTypes[3]);
|
|
28
|
+
}
|
|
29
|
+
throw new Error("Unexpected argument types: " + JSON.stringify(argumentTypes));
|
|
30
|
+
}
|
|
31
|
+
checkArgumentTypes(providedArgumentTypes, ctx) {
|
|
32
|
+
super.checkArgumentTypes(providedArgumentTypes, ctx);
|
|
33
|
+
//extra check: if our value to be checked is a Logical, the unknownValue must be provided
|
|
34
|
+
if (providedArgumentTypes[0][1].isSameTypeAs(Types_js_1.Type.LOGICAL)) {
|
|
35
|
+
if (providedArgumentTypes.length < 4) {
|
|
36
|
+
throw new MissingFunctionArgumentException_js_1.MissingFunctionArgumentException(this.name, IF.ARG_NAME_UNKNOWN, 3, ctx, `Argument ${IF.ARG_NAME_UNKNOWN} is required if the argument ${IF.ARG_NAME_CONDITION} is of type logical (i.e., can be true, false or unknown)`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else if (providedArgumentTypes[0][1].isSameTypeAs(Types_js_1.Type.BOOLEAN)) {
|
|
40
|
+
if (providedArgumentTypes.length > 3) {
|
|
41
|
+
throw new SpuriousFunctionArgumentException_js_1.SpuriousFunctionArgumentException(this.name, IF.ARG_NAME_UNKNOWN, 3, providedArgumentTypes[3][0], `Argument ${IF.ARG_NAME_UNKNOWN} is not allowed if the argument ${IF.ARG_NAME_CONDITION} is of type boolean (i.e., can only be true or false)`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
transformArguments(callingExpr, evaluatedArguments) {
|
|
46
|
+
const cond = evaluatedArguments.get(IF.ARG_NAME_CONDITION);
|
|
47
|
+
if ((0, ExprEvalResult_js_1.isExprEvalSuccess)(cond)) {
|
|
48
|
+
if (cond.result.getType().isSameTypeAs(Types_js_1.Type.LOGICAL)) {
|
|
49
|
+
if (evaluatedArguments.size < 4) {
|
|
50
|
+
evaluatedArguments.set(IF.ARG_NAME_UNKNOWN, new ExprEvalResult_js_1.ExprEvalMissingRequiredFunctionArgumentErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${IF.ARG_NAME_UNKNOWN} is required if the argument ${IF.ARG_NAME_CONDITION} is of type logical (i.e., can be true, false or unknown)`, this.name, IF.ARG_NAME_UNKNOWN, 3, callingExpr.getTextSpan()));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else if (cond.result.getType().isSameTypeAs(Types_js_1.Type.BOOLEAN)) {
|
|
54
|
+
if (evaluatedArguments.size > 3) {
|
|
55
|
+
evaluatedArguments.set(IF.ARG_NAME_UNKNOWN, new ExprEvalResult_js_1.ExprEvalSpuriousFunctionArgumentErrorObj(`Argument ${IF.ARG_NAME_UNKNOWN} is not allowed if the argument ${IF.ARG_NAME_CONDITION} is of type boolean (i.e., can only be true or false)`, this.name, IF.ARG_NAME_UNKNOWN, 3, callingExpr.getTextSpan()));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
19
59
|
}
|
|
20
60
|
calculateResult(callingExpr, evaluatedArguments) {
|
|
21
61
|
const condition = evaluatedArguments.get(IF.ARG_NAME_CONDITION);
|
|
22
|
-
if (condition.
|
|
62
|
+
if (condition.isTrue()) {
|
|
23
63
|
const thenValue = evaluatedArguments.get(IF.ARG_NAME_THEN);
|
|
24
64
|
return new ExprEvalResult_js_1.ExprEvalSuccessObj(thenValue);
|
|
25
65
|
}
|
|
26
|
-
|
|
27
|
-
|
|
66
|
+
else if (condition.isFalse()) {
|
|
67
|
+
const elseValue = evaluatedArguments.get(IF.ARG_NAME_ELSE);
|
|
68
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(elseValue);
|
|
69
|
+
}
|
|
70
|
+
else if (LogicalValue_js_1.LogicalValue.isUnknown(condition.getValue())) {
|
|
71
|
+
const unknownValue = evaluatedArguments.get(IF.ARG_NAME_UNKNOWN);
|
|
72
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(unknownValue);
|
|
73
|
+
}
|
|
74
|
+
return new ExprEvalResult_js_1.ExprEvalFunctionEvaluationErrorObj(ExprKind_js_1.ExprKind.FUNCTION, ExprEvalResult_js_1.ExprEvalStatus.ERROR, "Cannot handle value of condtition: " + JSON.stringify(condition), this.name, callingExpr.getTextSpan());
|
|
28
75
|
}
|
|
29
76
|
}
|
|
30
77
|
exports.IF = IF;
|
|
31
78
|
IF.ARG_NAME_CONDITION = "condition";
|
|
32
79
|
IF.ARG_NAME_THEN = "thenValue";
|
|
33
80
|
IF.ARG_NAME_ELSE = "elseValue";
|
|
81
|
+
IF.ARG_NAME_UNKNOWN = "unknownValue";
|
|
34
82
|
//# sourceMappingURL=IF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/IF.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/IF.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAQiC;AAGjC,qDAAqD;AAErD,wDAAkD;AAClD,kFAA4E;AAE5E,mDAA6C;AAC7C,8GAAwG;AACxG,4GAAsG;AAGtG,oEAA8D;AAE9D,MAAa,EAAG,SAAQ,cAAI;IAM1B;QACE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,oDAAuB,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC;YACxD,IAAI,0BAAU,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;YACtC,IAAI,0BAAU,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;YACtC,IAAI,0BAAU,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,OAAO,gBAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;QACD,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,OAAO,gBAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACvE;QACD,MAAM,IAAI,KAAK,CACb,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAC9D,CAAC;IACJ,CAAC;IAES,kBAAkB,CAC1B,qBAA2D,EAC3D,GAAG;QAEH,KAAK,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QACrD,yFAAyF;QACzF,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,eAAI,CAAC,OAAO,CAAC,EAAE;YAC1D,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,MAAM,IAAI,sEAAgC,CACxC,IAAI,CAAC,IAAI,EACT,EAAE,CAAC,gBAAgB,EACnB,CAAC,EACD,GAAG,EACH,YAAY,EAAE,CAAC,gBAAgB,gCAAgC,EAAE,CAAC,kBAAkB,2DAA2D,CAChJ,CAAC;aACH;SACF;aAAM,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,eAAI,CAAC,OAAO,CAAC,EAAE;YACjE,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,MAAM,IAAI,wEAAiC,CACzC,IAAI,CAAC,IAAI,EACT,EAAE,CAAC,gBAAgB,EACnB,CAAC,EACD,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3B,YAAY,EAAE,CAAC,gBAAgB,mCAAmC,EAAE,CAAC,kBAAkB,uDAAuD,CAC/I,CAAC;aACH;SACF;IACH,CAAC;IAES,kBAAkB,CAC1B,WAAsB,EACtB,kBAAgE;QAEhE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,IAAA,qCAAiB,EAAC,IAAI,CAAC,EAAE;YAC3B,IAAK,IAAI,CAAC,MAAqB,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,eAAI,CAAC,OAAO,CAAC,EAAE;gBACpE,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC/B,kBAAkB,CAAC,GAAG,CACpB,EAAE,CAAC,gBAAgB,EACnB,IAAI,mEAA+C,CACjD,sBAAQ,CAAC,kBAAkB,EAC3B,YAAY,EAAE,CAAC,gBAAgB,gCAAgC,EAAE,CAAC,kBAAkB,2DAA2D,EAC/I,IAAI,CAAC,IAAI,EACT,EAAE,CAAC,gBAAgB,EACnB,CAAC,EACD,WAAW,CAAC,WAAW,EAAE,CAC1B,CACF,CAAC;iBACH;aACF;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,eAAI,CAAC,OAAO,CAAC,EAAE;gBAC3D,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC/B,kBAAkB,CAAC,GAAG,CACpB,EAAE,CAAC,gBAAgB,EACnB,IAAI,4DAAwC,CAC1C,YAAY,EAAE,CAAC,gBAAgB,mCAAmC,EAAE,CAAC,kBAAkB,uDAAuD,EAC9I,IAAI,CAAC,IAAI,EACT,EAAE,CAAC,gBAAgB,EACnB,CAAC,EACD,WAAW,CAAC,WAAW,EAAE,CAC1B,CACF,CAAC;iBACH;aACF;SACF;IACH,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAE9C,CAAC;QACjB,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC3D,OAAO,IAAI,sCAAkB,CAAC,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC3D,OAAO,IAAI,sCAAkB,CAAC,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,8BAAY,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE;YACvD,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;YACjE,OAAO,IAAI,sCAAkB,CAAC,YAAY,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,sDAAkC,CAC3C,sBAAQ,CAAC,QAAQ,EACjB,kCAAc,CAAC,KAAK,EACpB,qCAAqC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACjE,IAAI,CAAC,IAAI,EACT,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;IACJ,CAAC;;AArHH,gBAsHC;AArHyB,qBAAkB,GAAG,WAAW,CAAC;AACjC,gBAAa,GAAG,WAAW,CAAC;AAC5B,gBAAa,GAAG,WAAW,CAAC;AAC5B,mBAAgB,GAAG,cAAc,CAAC","file":"expression/function/impl/IF.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalMissingRequiredFunctionArgumentErrorObj,\n ExprEvalResult,\n ExprEvalSpuriousFunctionArgumentErrorObj,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean\";\nimport { ParserRuleContext } from \"antlr4\";\nimport { ExprKind } from \"../../ExprKind\";\nimport { SpuriousFunctionArgumentException } from \"../../../error/SpuriousFunctionArgumentException\";\nimport { MissingFunctionArgumentException } from \"../../../error/MissingFunctionArgumentException\";\nimport { Value } from \"../../../value/Value\";\nimport { Expr } from \"../../Expr\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\n\nexport class IF extends Func {\n private static readonly ARG_NAME_CONDITION = \"condition\";\n private static readonly ARG_NAME_THEN = \"thenValue\";\n private static readonly ARG_NAME_ELSE = \"elseValue\";\n private static readonly ARG_NAME_UNKNOWN = \"unknownValue\";\n\n constructor() {\n super(\"IF\", [\n new FuncArgLogicalOrBoolean(true, IF.ARG_NAME_CONDITION),\n new FuncArgAny(true, IF.ARG_NAME_THEN),\n new FuncArgAny(true, IF.ARG_NAME_ELSE),\n new FuncArgAny(false, IF.ARG_NAME_UNKNOWN),\n ]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n if (argumentTypes.length == 3) {\n return Types.or(argumentTypes[1], argumentTypes[2]);\n }\n if (argumentTypes.length == 4) {\n return Types.or(argumentTypes[1], argumentTypes[2], argumentTypes[3]);\n }\n throw new Error(\n \"Unexpected argument types: \" + JSON.stringify(argumentTypes)\n );\n }\n\n protected checkArgumentTypes(\n providedArgumentTypes: Array<[ParserRuleContext, ExprType]>,\n ctx\n ) {\n super.checkArgumentTypes(providedArgumentTypes, ctx);\n //extra check: if our value to be checked is a Logical, the unknownValue must be provided\n if (providedArgumentTypes[0][1].isSameTypeAs(Type.LOGICAL)) {\n if (providedArgumentTypes.length < 4) {\n throw new MissingFunctionArgumentException(\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n ctx,\n `Argument ${IF.ARG_NAME_UNKNOWN} is required if the argument ${IF.ARG_NAME_CONDITION} is of type logical (i.e., can be true, false or unknown)`\n );\n }\n } else if (providedArgumentTypes[0][1].isSameTypeAs(Type.BOOLEAN)) {\n if (providedArgumentTypes.length > 3) {\n throw new SpuriousFunctionArgumentException(\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n providedArgumentTypes[3][0],\n `Argument ${IF.ARG_NAME_UNKNOWN} is not allowed if the argument ${IF.ARG_NAME_CONDITION} is of type boolean (i.e., can only be true or false)`\n );\n }\n }\n }\n\n protected transformArguments(\n callingExpr: Expr<any>,\n evaluatedArguments: Map<string, ExprEvalResult<ExpressionValue>>\n ) {\n const cond = evaluatedArguments.get(IF.ARG_NAME_CONDITION);\n if (isExprEvalSuccess(cond)) {\n if ((cond.result as Value<any>).getType().isSameTypeAs(Type.LOGICAL)) {\n if (evaluatedArguments.size < 4) {\n evaluatedArguments.set(\n IF.ARG_NAME_UNKNOWN,\n new ExprEvalMissingRequiredFunctionArgumentErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${IF.ARG_NAME_UNKNOWN} is required if the argument ${IF.ARG_NAME_CONDITION} is of type logical (i.e., can be true, false or unknown)`,\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n callingExpr.getTextSpan()\n )\n );\n }\n } else if (cond.result.getType().isSameTypeAs(Type.BOOLEAN)) {\n if (evaluatedArguments.size > 3) {\n evaluatedArguments.set(\n IF.ARG_NAME_UNKNOWN,\n new ExprEvalSpuriousFunctionArgumentErrorObj(\n `Argument ${IF.ARG_NAME_UNKNOWN} is not allowed if the argument ${IF.ARG_NAME_CONDITION} is of type boolean (i.e., can only be true or false)`,\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n callingExpr.getTextSpan()\n )\n );\n }\n }\n }\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const condition = evaluatedArguments.get(IF.ARG_NAME_CONDITION) as\n | LogicalValue\n | BooleanValue;\n if (condition.isTrue()) {\n const thenValue = evaluatedArguments.get(IF.ARG_NAME_THEN);\n return new ExprEvalSuccessObj(thenValue);\n } else if (condition.isFalse()) {\n const elseValue = evaluatedArguments.get(IF.ARG_NAME_ELSE);\n return new ExprEvalSuccessObj(elseValue);\n } else if (LogicalValue.isUnknown(condition.getValue())) {\n const unknownValue = evaluatedArguments.get(IF.ARG_NAME_UNKNOWN);\n return new ExprEvalSuccessObj(unknownValue);\n }\n return new ExprEvalFunctionEvaluationErrorObj(\n ExprKind.FUNCTION,\n ExprEvalStatus.ERROR,\n \"Cannot handle value of condtition: \" + JSON.stringify(condition),\n this.name,\n callingExpr.getTextSpan()\n );\n }\n}\n"]}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NOT = void 0;
|
|
4
|
-
const BooleanValue_js_1 = require("../../../value/BooleanValue.js");
|
|
5
4
|
const Func_js_1 = require("../Func.js");
|
|
6
|
-
const FuncArgBoolean_js_1 = require("../arg/FuncArgBoolean.js");
|
|
7
5
|
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
8
|
-
const
|
|
6
|
+
const FuncArgLogicalOrBoolean_js_1 = require("../arg/FuncArgLogicalOrBoolean.js");
|
|
9
7
|
class NOT extends Func_js_1.Func {
|
|
10
8
|
constructor() {
|
|
11
|
-
super("NOT", [new
|
|
9
|
+
super("NOT", [new FuncArgLogicalOrBoolean_js_1.FuncArgLogicalOrBoolean(true, NOT.KEY_ARG)]);
|
|
12
10
|
}
|
|
13
11
|
getReturnType(argumentTypes) {
|
|
14
|
-
return
|
|
12
|
+
return argumentTypes[0];
|
|
15
13
|
}
|
|
16
14
|
calculateResult(callingExpr, evaluatedArguments) {
|
|
17
15
|
const arg = evaluatedArguments.get(NOT.KEY_ARG);
|
|
18
|
-
return new ExprEvalResult_js_1.ExprEvalSuccessObj(
|
|
16
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(arg.not());
|
|
19
17
|
}
|
|
20
18
|
}
|
|
21
19
|
exports.NOT = NOT;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/NOT.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/NOT.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAGlC,+DAA6E;AAI7E,kFAA4E;AAG5E,MAAa,GAAI,SAAQ,cAAI;IAG3B;QACE,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,oDAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAE9B,CAAC;QACjB,OAAO,IAAI,sCAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;;AAnBH,kBAoBC;AAnByB,WAAO,GAAG,KAAK,CAAC","file":"expression/function/impl/NOT.js","sourcesContent":["import { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Func } from \"../Func.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\n\nexport class NOT extends Func {\n private static readonly KEY_ARG = \"arg\";\n\n constructor() {\n super(\"NOT\", [new FuncArgLogicalOrBoolean(true, NOT.KEY_ARG)]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return argumentTypes[0];\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const arg = evaluatedArguments.get(NOT.KEY_ARG) as\n | BooleanValue\n | LogicalValue;\n return new ExprEvalSuccessObj(arg.not());\n }\n}\n"]}
|
|
@@ -64,7 +64,7 @@ class TOBOOLEAN extends Func_js_1.Func {
|
|
|
64
64
|
throw new Error(`numeric conversion not implemented for type ${value.constructor.name}`);
|
|
65
65
|
}
|
|
66
66
|
getReturnType(argumentTypes) {
|
|
67
|
-
return Types_js_1.Type.
|
|
67
|
+
return Types_js_1.Type.BOOLEAN;
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
exports.TOBOOLEAN = TOBOOLEAN;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/TOBOOLEAN.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAMiC;AACjC,kEAA4D;AAE5D,qDAA8C;AAE9C,oEAA8D;AAE9D,oEAA8D;AAC9D,oEAA8D;AAC9D,wEAAkE;AAGlE,MAAa,SAAU,SAAQ,cAAI;IAEjC;QACE,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,0BAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI;YACF,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,sDAAkC,CAC3C,WAAW,CAAC,OAAO,EAAE,EACrB,kCAAc,CAAC,KAAK,EACpB,kBAAkB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAC3D,IAAI,CAAC,IAAI,EACT,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;IACH,CAAC;IAEO,OAAO,CAAC,KAAsB;QACpC,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACzB;QACD,IAAI,KAAK,YAAY,4BAAW,IAAI,KAAK,YAAY,kCAAc,EAAE;YACnE,QAAQ,KAAK,CAAC,QAAQ,EAAE,EAAE;gBACxB,KAAK,MAAM,CAAC;gBACZ,KAAK,MAAM,CAAC;gBACZ,KAAK,GAAG;oBACN,OAAO,IAAI,CAAC;gBACd,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO,CAAC;gBACb,KAAK,GAAG;oBACN,OAAO,KAAK,CAAC;gBACf;oBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC/D;SACF;QACD,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,MAAM,GAAG,GAAY,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;gBAChB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACb;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QACD,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,OAAO,IAAI,CAAC;aACb;YACD,IAAI,GAAG,KAAK,KAAK,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QACD,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOBOOLEAN.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAMiC;AACjC,kEAA4D;AAE5D,qDAA8C;AAE9C,oEAA8D;AAE9D,oEAA8D;AAC9D,oEAA8D;AAC9D,wEAAkE;AAGlE,MAAa,SAAU,SAAQ,cAAI;IAEjC;QACE,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,0BAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI;YACF,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,sDAAkC,CAC3C,WAAW,CAAC,OAAO,EAAE,EACrB,kCAAc,CAAC,KAAK,EACpB,kBAAkB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAC3D,IAAI,CAAC,IAAI,EACT,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;IACH,CAAC;IAEO,OAAO,CAAC,KAAsB;QACpC,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACzB;QACD,IAAI,KAAK,YAAY,4BAAW,IAAI,KAAK,YAAY,kCAAc,EAAE;YACnE,QAAQ,KAAK,CAAC,QAAQ,EAAE,EAAE;gBACxB,KAAK,MAAM,CAAC;gBACZ,KAAK,MAAM,CAAC;gBACZ,KAAK,GAAG;oBACN,OAAO,IAAI,CAAC;gBACd,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO,CAAC;gBACb,KAAK,GAAG;oBACN,OAAO,KAAK,CAAC;gBACf;oBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC/D;SACF;QACD,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,MAAM,GAAG,GAAY,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;gBAChB,OAAO,KAAK,CAAC;aACd;YACD,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACb;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QACD,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,OAAO,IAAI,CAAC;aACb;YACD,IAAI,GAAG,KAAK,KAAK,EAAE;gBACjB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QACD,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;;AArEH,8BAsEC;AArEyB,oBAAU,GAAG,QAAQ,CAAC","file":"expression/function/impl/TOBOOLEAN.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n ExprEvalWrongFunctionArgumentTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { NumericValue } from \"../../../value/NumericValue\";\nimport { Decimal } from \"decimal.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\nimport { ReferenceValue } from \"../../../value/ReferenceValue\";\nimport { isNullish } from \"../../../util/IfcExpressionUtils\";\n\nexport class TOBOOLEAN extends Func {\n private static readonly KEY_OBJECT = \"object\";\n constructor() {\n super(\"TOBOOLEAN\", [new FuncArgAny(true, \"object\")]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = evaluatedArguments.get(\"object\");\n try {\n return new ExprEvalSuccessObj(BooleanValue.of(this.convert(val)));\n } catch (e) {\n return new ExprEvalFunctionEvaluationErrorObj(\n callingExpr.getKind(),\n ExprEvalStatus.ERROR,\n `Cannot convert ${val.getValue()} to boolean: ${e.message}`,\n this.name,\n callingExpr.getTextSpan()\n );\n }\n }\n\n private convert(value: ExpressionValue): boolean {\n if (value instanceof BooleanValue) {\n return value.getValue();\n }\n if (value instanceof StringValue || value instanceof ReferenceValue) {\n switch (value.getValue()) {\n case \"TRUE\":\n case \"true\":\n case \"1\":\n return true;\n case \"FALSE\":\n case \"false\":\n case \"0\":\n return false;\n default:\n throw new Error(`Not a boolean value: ${value.getValue()}`);\n }\n }\n if (value instanceof NumericValue) {\n const val: Decimal = value.getValue();\n if (val.isZero()) {\n return false;\n }\n if (val.toNumber() === 1) {\n return true;\n }\n throw new Error(\"Can only convert 0 or 1 to boolean\");\n }\n if (value instanceof LogicalValue) {\n const val = value.getValue();\n if (val === true) {\n return true;\n }\n if (val === false) {\n return false;\n }\n throw new Error(\"Can only convert 0 or 1 to boolean\");\n }\n throw new Error(\n `numeric conversion not implemented for type ${value.constructor.name}`\n );\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.BOOLEAN;\n }\n}\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOLOGICAL = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
7
|
+
const LogicalValue_js_1 = require("../../../value/LogicalValue.js");
|
|
8
|
+
const FuncArgBoolean_js_1 = require("../arg/FuncArgBoolean.js");
|
|
9
|
+
class TOLOGICAL extends Func_js_1.Func {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("TOLOGICAL", [new FuncArgBoolean_js_1.FuncArgBoolean(true, "object")]);
|
|
12
|
+
}
|
|
13
|
+
transformArguments(callingExpr, evaluatedArguments) {
|
|
14
|
+
const val = evaluatedArguments.get(TOLOGICAL.KEY_OBJECT);
|
|
15
|
+
if ((0, ExprEvalResult_js_1.isExprEvalError)(val)) {
|
|
16
|
+
if (val.status === ExprEvalResult_js_1.ExprEvalStatus.IFC_PROPERTY_NOT_FOUND) {
|
|
17
|
+
evaluatedArguments.set(TOLOGICAL.KEY_OBJECT, new ExprEvalResult_js_1.ExprEvalSuccessObj(LogicalValue_js_1.LogicalValue.unknown()));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
evaluatedArguments.set(TOLOGICAL.KEY_OBJECT, new ExprEvalResult_js_1.ExprEvalSuccessObj(LogicalValue_js_1.LogicalValue.of(val.result.getValue())));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
calculateResult(callingExpr, evaluatedArguments) {
|
|
25
|
+
const val = evaluatedArguments.get(TOLOGICAL.KEY_OBJECT);
|
|
26
|
+
try {
|
|
27
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(val);
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
return new ExprEvalResult_js_1.ExprEvalFunctionEvaluationErrorObj(callingExpr.getKind(), ExprEvalResult_js_1.ExprEvalStatus.ERROR, `Cannot convert ${val.getValue()} to boolean: ${e.message}`, this.name, callingExpr.getTextSpan());
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getReturnType(argumentTypes) {
|
|
34
|
+
return Types_js_1.Type.LOGICAL;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.TOLOGICAL = TOLOGICAL;
|
|
38
|
+
TOLOGICAL.KEY_OBJECT = "object";
|
|
39
|
+
//# sourceMappingURL=TOLOGICAL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOLOGICAL.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAMiC;AAGjC,qDAA8C;AAK9C,oEAA8D;AAE9D,gEAA0D;AAG1D,MAAa,SAAU,SAAQ,cAAI;IAEjC;QACE,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,kCAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAES,kBAAkB,CAC1B,WAAsB,EACtB,kBAAgE;QAEhE,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,MAAM,KAAK,kCAAc,CAAC,sBAAsB,EAAE;gBACxD,kBAAkB,CAAC,GAAG,CACpB,SAAS,CAAC,UAAU,EACpB,IAAI,sCAAkB,CAAC,8BAAY,CAAC,OAAO,EAAE,CAAC,CAC/C,CAAC;aACH;SACF;aAAM;YACL,kBAAkB,CAAC,GAAG,CACpB,SAAS,CAAC,UAAU,EACpB,IAAI,sCAAkB,CACpB,8BAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAa,CAAC,CAClD,CACF,CAAC;SACH;IACH,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI;YACF,OAAO,IAAI,sCAAkB,CAAC,GAAG,CAAC,CAAC;SACpC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,sDAAkC,CAC3C,WAAW,CAAC,OAAO,EAAE,EACrB,kCAAc,CAAC,KAAK,EACpB,kBAAkB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAC3D,IAAI,CAAC,IAAI,EACT,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;IACH,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;;AAhDH,8BAiDC;AAhDyB,oBAAU,GAAG,QAAQ,CAAC","file":"expression/function/impl/TOLOGICAL.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n isExprEvalError,\n} from \"../../ExprEvalResult.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { NumericValue } from \"../../../value/NumericValue\";\nimport { Decimal } from \"decimal.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\nimport { ReferenceValue } from \"../../../value/ReferenceValue\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean\";\nimport { Expr } from \"../../Expr\";\n\nexport class TOLOGICAL extends Func {\n private static readonly KEY_OBJECT = \"object\";\n constructor() {\n super(\"TOLOGICAL\", [new FuncArgBoolean(true, \"object\")]);\n }\n\n protected transformArguments(\n callingExpr: Expr<any>,\n evaluatedArguments: Map<string, ExprEvalResult<ExpressionValue>>\n ) {\n const val = evaluatedArguments.get(TOLOGICAL.KEY_OBJECT);\n if (isExprEvalError(val)) {\n if (val.status === ExprEvalStatus.IFC_PROPERTY_NOT_FOUND) {\n evaluatedArguments.set(\n TOLOGICAL.KEY_OBJECT,\n new ExprEvalSuccessObj(LogicalValue.unknown())\n );\n }\n } else {\n evaluatedArguments.set(\n TOLOGICAL.KEY_OBJECT,\n new ExprEvalSuccessObj(\n LogicalValue.of(val.result.getValue() as boolean)\n )\n );\n }\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = evaluatedArguments.get(TOLOGICAL.KEY_OBJECT);\n try {\n return new ExprEvalSuccessObj(val);\n } catch (e) {\n return new ExprEvalFunctionEvaluationErrorObj(\n callingExpr.getKind(),\n ExprEvalStatus.ERROR,\n `Cannot convert ${val.getValue()} to boolean: ${e.message}`,\n this.name,\n callingExpr.getTextSpan()\n );\n }\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.LOGICAL;\n }\n}\n"]}
|
|
@@ -44,7 +44,7 @@ class TONUMERIC extends Func_js_1.Func {
|
|
|
44
44
|
throw new Error(`numeric conversion not implemented for type ${value.constructor.name}`);
|
|
45
45
|
}
|
|
46
46
|
getReturnType(argumentTypes) {
|
|
47
|
-
return Types_js_1.Type.
|
|
47
|
+
return Types_js_1.Type.NUMERIC;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
exports.TONUMERIC = TONUMERIC;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/TONUMERIC.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAMiC;AACjC,kEAA4D;AAE5D,qDAA8C;AAE9C,oEAA8D;AAC9D,2CAAqC;AACrC,oEAA8D;AAC9D,oEAA8D;AAC9D,wEAAkE;AAElE,MAAa,SAAU,SAAQ,cAAI;IAEjC;QACE,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,0BAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI;YACF,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,sDAAkC,CAC3C,WAAW,CAAC,OAAO,EAAE,EACrB,kCAAc,CAAC,UAAU,EACzB,kBAAkB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAC3D,IAAI,CAAC,IAAI,EACT,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;IACH,CAAC;IAEO,OAAO,CAAC,KAAsB;QACpC,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,IAAI,KAAK,YAAY,4BAAW,IAAI,KAAK,YAAY,kCAAc,EAAE;YACnE,OAAO,IAAI,oBAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtC;QACD,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACzB;QACD,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,KAAK,SAAS;gBACnC,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAClB,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC;oBAChB,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;SACpB;QACD,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TONUMERIC.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAMiC;AACjC,kEAA4D;AAE5D,qDAA8C;AAE9C,oEAA8D;AAC9D,2CAAqC;AACrC,oEAA8D;AAC9D,oEAA8D;AAC9D,wEAAkE;AAElE,MAAa,SAAU,SAAQ,cAAI;IAEjC;QACE,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,0BAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI;YACF,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,sDAAkC,CAC3C,WAAW,CAAC,OAAO,EAAE,EACrB,kCAAc,CAAC,UAAU,EACzB,kBAAkB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAC3D,IAAI,CAAC,IAAI,EACT,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;IACH,CAAC;IAEO,OAAO,CAAC,KAAsB;QACpC,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;SAC3D;QACD,IAAI,KAAK,YAAY,4BAAW,IAAI,KAAK,YAAY,kCAAc,EAAE;YACnE,OAAO,IAAI,oBAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtC;QACD,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACzB;QACD,IAAI,KAAK,YAAY,8BAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,KAAK,SAAS;gBACnC,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAClB,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC;oBAChB,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;SACpB;QACD,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;;AAhDH,8BAiDC;AAhDyB,oBAAU,GAAG,QAAQ,CAAC","file":"expression/function/impl/TONUMERIC.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalResult,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n ExprEvalWrongFunctionArgumentTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { NumericValue } from \"../../../value/NumericValue\";\nimport { Decimal } from \"decimal.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\nimport { ReferenceValue } from \"../../../value/ReferenceValue\";\n\nexport class TONUMERIC extends Func {\n private static readonly KEY_OBJECT = \"object\";\n constructor() {\n super(\"TONUMERIC\", [new FuncArgAny(true, \"object\")]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = evaluatedArguments.get(\"object\");\n try {\n return new ExprEvalSuccessObj(NumericValue.of(this.convert(val)));\n } catch (e) {\n return new ExprEvalFunctionEvaluationErrorObj(\n callingExpr.getKind(),\n ExprEvalStatus.MATH_ERROR,\n `Cannot convert ${val.getValue()} to numeric: ${e.message}`,\n this.name,\n callingExpr.getTextSpan()\n );\n }\n }\n\n private convert(value: ExpressionValue): Decimal {\n if (value instanceof BooleanValue) {\n return value.getValue() ? new Decimal(1) : new Decimal(0);\n }\n if (value instanceof StringValue || value instanceof ReferenceValue) {\n return new Decimal(value.getValue());\n }\n if (value instanceof NumericValue) {\n return value.getValue();\n }\n if (value instanceof LogicalValue) {\n return value.getValue() === \"UNKNOWN\"\n ? new Decimal(-1)\n : value.getValue()\n ? new Decimal(1)\n : new Decimal(0);\n }\n throw new Error(\n `numeric conversion not implemented for type ${value.constructor.name}`\n );\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.NUMERIC;\n }\n}\n"]}
|
|
@@ -38,13 +38,14 @@ IfcExpressionLexer.T__12 = 13;
|
|
|
38
38
|
IfcExpressionLexer.INT = 14;
|
|
39
39
|
IfcExpressionLexer.FLOAT = 15;
|
|
40
40
|
IfcExpressionLexer.BOOLEAN = 16;
|
|
41
|
-
IfcExpressionLexer.
|
|
42
|
-
IfcExpressionLexer.
|
|
43
|
-
IfcExpressionLexer.
|
|
44
|
-
IfcExpressionLexer.
|
|
45
|
-
IfcExpressionLexer.
|
|
46
|
-
IfcExpressionLexer.
|
|
47
|
-
IfcExpressionLexer.
|
|
41
|
+
IfcExpressionLexer.LOGICAL_UNKNOWN = 17;
|
|
42
|
+
IfcExpressionLexer.DOT = 18;
|
|
43
|
+
IfcExpressionLexer.QUOTED_STRING = 19;
|
|
44
|
+
IfcExpressionLexer.IDENTIFIER = 20;
|
|
45
|
+
IfcExpressionLexer.WS = 21;
|
|
46
|
+
IfcExpressionLexer.NEWLINE = 22;
|
|
47
|
+
IfcExpressionLexer.BOOLEAN_BINARY_OP = 23;
|
|
48
|
+
IfcExpressionLexer.CMP_OP = 24;
|
|
48
49
|
IfcExpressionLexer.EOF = antlr4_1.Token.EOF;
|
|
49
50
|
IfcExpressionLexer.channelNames = ["DEFAULT_TOKEN_CHANNEL", "HIDDEN"];
|
|
50
51
|
IfcExpressionLexer.literalNames = [null, "'--'",
|
|
@@ -55,7 +56,8 @@ IfcExpressionLexer.literalNames = [null, "'--'",
|
|
|
55
56
|
"','", "'['",
|
|
56
57
|
"']'", "'$'",
|
|
57
58
|
null, null,
|
|
58
|
-
null,
|
|
59
|
+
null, null,
|
|
60
|
+
"'.'"];
|
|
59
61
|
IfcExpressionLexer.symbolicNames = [null, null,
|
|
60
62
|
null, null,
|
|
61
63
|
null, null,
|
|
@@ -65,6 +67,7 @@ IfcExpressionLexer.symbolicNames = [null, null,
|
|
|
65
67
|
null, null,
|
|
66
68
|
"INT", "FLOAT",
|
|
67
69
|
"BOOLEAN",
|
|
70
|
+
"LOGICAL_UNKNOWN",
|
|
68
71
|
"DOT", "QUOTED_STRING",
|
|
69
72
|
"IDENTIFIER",
|
|
70
73
|
"WS", "NEWLINE",
|
|
@@ -73,66 +76,73 @@ IfcExpressionLexer.symbolicNames = [null, null,
|
|
|
73
76
|
IfcExpressionLexer.modeNames = ["DEFAULT_MODE",];
|
|
74
77
|
IfcExpressionLexer.ruleNames = [
|
|
75
78
|
"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
|
|
76
|
-
"T__9", "T__10", "T__11", "T__12", "INT", "FLOAT", "BOOLEAN", "
|
|
77
|
-
"IDENTIFIER", "WS", "NEWLINE", "BOOLEAN_BINARY_OP",
|
|
79
|
+
"T__9", "T__10", "T__11", "T__12", "INT", "FLOAT", "BOOLEAN", "LOGICAL_UNKNOWN",
|
|
80
|
+
"DOT", "QUOTED_STRING", "IDENTIFIER", "WS", "NEWLINE", "BOOLEAN_BINARY_OP",
|
|
81
|
+
"CMP_OP",
|
|
78
82
|
];
|
|
79
|
-
IfcExpressionLexer._serializedATN = [4, 0,
|
|
83
|
+
IfcExpressionLexer._serializedATN = [4, 0, 24, 188, 6, -1, 2, 0,
|
|
80
84
|
7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9,
|
|
81
85
|
7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7,
|
|
82
|
-
16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22,
|
|
83
|
-
1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8,
|
|
84
|
-
1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 4, 13,
|
|
85
|
-
4, 14,
|
|
86
|
-
1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15,
|
|
87
|
-
15, 1, 15, 1, 15, 3, 15,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
1,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
1, 0, 0, 0, 0,
|
|
99
|
-
0,
|
|
100
|
-
|
|
101
|
-
0,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
0, 0,
|
|
106
|
-
|
|
107
|
-
0,
|
|
108
|
-
0,
|
|
109
|
-
0,
|
|
110
|
-
0,
|
|
111
|
-
0,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
0,
|
|
116
|
-
5,
|
|
117
|
-
0, 0,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
1, 0, 0, 0,
|
|
130
|
-
0, 0,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
0, 0,
|
|
134
|
-
|
|
135
|
-
|
|
86
|
+
16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23,
|
|
87
|
+
1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8,
|
|
88
|
+
1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 4, 13, 78, 8, 13, 11, 13, 12, 13,
|
|
89
|
+
79, 1, 14, 4, 14, 83, 8, 14, 11, 14, 12, 14, 84, 1, 14, 1, 14, 4, 14, 89, 8, 14, 11, 14, 12, 14,
|
|
90
|
+
90, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15,
|
|
91
|
+
1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 111, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1,
|
|
92
|
+
16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 127, 8, 16, 1, 17, 1, 17, 1, 18, 1, 18, 5, 18,
|
|
93
|
+
133, 8, 18, 10, 18, 12, 18, 136, 9, 18, 1, 18, 1, 18, 1, 18, 5, 18, 141, 8, 18, 10, 18, 12, 18,
|
|
94
|
+
144, 9, 18, 1, 18, 3, 18, 147, 8, 18, 1, 19, 1, 19, 5, 19, 151, 8, 19, 10, 19, 12, 19, 154, 9, 19,
|
|
95
|
+
1, 20, 4, 20, 157, 8, 20, 11, 20, 12, 20, 158, 1, 20, 1, 20, 1, 21, 4, 21, 164, 8, 21, 11, 21, 12,
|
|
96
|
+
21, 165, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 176, 8, 22, 1, 23, 1, 23,
|
|
97
|
+
1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 187, 8, 23, 2, 134, 142, 0, 24, 1, 1, 3, 2,
|
|
98
|
+
5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31,
|
|
99
|
+
16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 1, 0, 6, 1, 0, 48, 57, 3, 0,
|
|
100
|
+
65, 90, 95, 95, 97, 122, 7, 0, 36, 36, 38, 38, 45, 45, 48, 57, 65, 90, 95, 95, 97, 122, 2, 0, 9,
|
|
101
|
+
9, 32, 32, 2, 0, 10, 10, 13, 13, 2, 0, 60, 60, 62, 62, 206, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5,
|
|
102
|
+
1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0,
|
|
103
|
+
0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1,
|
|
104
|
+
0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0,
|
|
105
|
+
0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 1, 49, 1,
|
|
106
|
+
0, 0, 0, 3, 52, 1, 0, 0, 0, 5, 54, 1, 0, 0, 0, 7, 56, 1, 0, 0, 0, 9, 58, 1, 0, 0, 0, 11, 60, 1, 0, 0, 0,
|
|
107
|
+
13, 62, 1, 0, 0, 0, 15, 64, 1, 0, 0, 0, 17, 66, 1, 0, 0, 0, 19, 68, 1, 0, 0, 0, 21, 70, 1, 0, 0, 0, 23,
|
|
108
|
+
72, 1, 0, 0, 0, 25, 74, 1, 0, 0, 0, 27, 77, 1, 0, 0, 0, 29, 82, 1, 0, 0, 0, 31, 110, 1, 0, 0, 0, 33,
|
|
109
|
+
126, 1, 0, 0, 0, 35, 128, 1, 0, 0, 0, 37, 146, 1, 0, 0, 0, 39, 148, 1, 0, 0, 0, 41, 156, 1, 0, 0, 0,
|
|
110
|
+
43, 163, 1, 0, 0, 0, 45, 175, 1, 0, 0, 0, 47, 186, 1, 0, 0, 0, 49, 50, 5, 45, 0, 0, 50, 51, 5, 45,
|
|
111
|
+
0, 0, 51, 2, 1, 0, 0, 0, 52, 53, 5, 40, 0, 0, 53, 4, 1, 0, 0, 0, 54, 55, 5, 41, 0, 0, 55, 6, 1, 0, 0,
|
|
112
|
+
0, 56, 57, 5, 45, 0, 0, 57, 8, 1, 0, 0, 0, 58, 59, 5, 94, 0, 0, 59, 10, 1, 0, 0, 0, 60, 61, 5, 42, 0,
|
|
113
|
+
0, 61, 12, 1, 0, 0, 0, 62, 63, 5, 47, 0, 0, 63, 14, 1, 0, 0, 0, 64, 65, 5, 43, 0, 0, 65, 16, 1, 0, 0,
|
|
114
|
+
0, 66, 67, 5, 33, 0, 0, 67, 18, 1, 0, 0, 0, 68, 69, 5, 44, 0, 0, 69, 20, 1, 0, 0, 0, 70, 71, 5, 91,
|
|
115
|
+
0, 0, 71, 22, 1, 0, 0, 0, 72, 73, 5, 93, 0, 0, 73, 24, 1, 0, 0, 0, 74, 75, 5, 36, 0, 0, 75, 26, 1, 0,
|
|
116
|
+
0, 0, 76, 78, 7, 0, 0, 0, 77, 76, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 77, 1, 0, 0, 0, 79, 80, 1, 0, 0,
|
|
117
|
+
0, 80, 28, 1, 0, 0, 0, 81, 83, 7, 0, 0, 0, 82, 81, 1, 0, 0, 0, 83, 84, 1, 0, 0, 0, 84, 82, 1, 0, 0, 0,
|
|
118
|
+
84, 85, 1, 0, 0, 0, 85, 86, 1, 0, 0, 0, 86, 88, 5, 46, 0, 0, 87, 89, 7, 0, 0, 0, 88, 87, 1, 0, 0, 0,
|
|
119
|
+
89, 90, 1, 0, 0, 0, 90, 88, 1, 0, 0, 0, 90, 91, 1, 0, 0, 0, 91, 30, 1, 0, 0, 0, 92, 93, 5, 84, 0, 0,
|
|
120
|
+
93, 94, 5, 82, 0, 0, 94, 95, 5, 85, 0, 0, 95, 111, 5, 69, 0, 0, 96, 97, 5, 116, 0, 0, 97, 98, 5, 114,
|
|
121
|
+
0, 0, 98, 99, 5, 117, 0, 0, 99, 111, 5, 101, 0, 0, 100, 101, 5, 70, 0, 0, 101, 102, 5, 65, 0, 0,
|
|
122
|
+
102, 103, 5, 76, 0, 0, 103, 104, 5, 83, 0, 0, 104, 111, 5, 69, 0, 0, 105, 106, 5, 102, 0, 0, 106,
|
|
123
|
+
107, 5, 97, 0, 0, 107, 108, 5, 108, 0, 0, 108, 109, 5, 115, 0, 0, 109, 111, 5, 101, 0, 0, 110,
|
|
124
|
+
92, 1, 0, 0, 0, 110, 96, 1, 0, 0, 0, 110, 100, 1, 0, 0, 0, 110, 105, 1, 0, 0, 0, 111, 32, 1, 0, 0,
|
|
125
|
+
0, 112, 113, 5, 85, 0, 0, 113, 114, 5, 78, 0, 0, 114, 115, 5, 75, 0, 0, 115, 116, 5, 78, 0, 0, 116,
|
|
126
|
+
117, 5, 79, 0, 0, 117, 118, 5, 87, 0, 0, 118, 127, 5, 78, 0, 0, 119, 120, 5, 117, 0, 0, 120, 121,
|
|
127
|
+
5, 110, 0, 0, 121, 122, 5, 107, 0, 0, 122, 123, 5, 110, 0, 0, 123, 124, 5, 111, 0, 0, 124, 125,
|
|
128
|
+
5, 119, 0, 0, 125, 127, 5, 110, 0, 0, 126, 112, 1, 0, 0, 0, 126, 119, 1, 0, 0, 0, 127, 34, 1, 0,
|
|
129
|
+
0, 0, 128, 129, 5, 46, 0, 0, 129, 36, 1, 0, 0, 0, 130, 134, 5, 34, 0, 0, 131, 133, 9, 0, 0, 0, 132,
|
|
130
|
+
131, 1, 0, 0, 0, 133, 136, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 137, 1, 0,
|
|
131
|
+
0, 0, 136, 134, 1, 0, 0, 0, 137, 147, 5, 34, 0, 0, 138, 142, 5, 39, 0, 0, 139, 141, 9, 0, 0, 0, 140,
|
|
132
|
+
139, 1, 0, 0, 0, 141, 144, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 142, 140, 1, 0, 0, 0, 143, 145, 1, 0,
|
|
133
|
+
0, 0, 144, 142, 1, 0, 0, 0, 145, 147, 5, 39, 0, 0, 146, 130, 1, 0, 0, 0, 146, 138, 1, 0, 0, 0, 147,
|
|
134
|
+
38, 1, 0, 0, 0, 148, 152, 7, 1, 0, 0, 149, 151, 7, 2, 0, 0, 150, 149, 1, 0, 0, 0, 151, 154, 1, 0,
|
|
135
|
+
0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153, 40, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 155,
|
|
136
|
+
157, 7, 3, 0, 0, 156, 155, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0,
|
|
137
|
+
0, 0, 159, 160, 1, 0, 0, 0, 160, 161, 6, 20, 0, 0, 161, 42, 1, 0, 0, 0, 162, 164, 7, 4, 0, 0, 163,
|
|
138
|
+
162, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0, 165, 166, 1, 0, 0, 0, 166, 167, 1, 0,
|
|
139
|
+
0, 0, 167, 168, 6, 21, 0, 0, 168, 44, 1, 0, 0, 0, 169, 170, 5, 124, 0, 0, 170, 176, 5, 124, 0, 0,
|
|
140
|
+
171, 172, 5, 38, 0, 0, 172, 176, 5, 38, 0, 0, 173, 174, 5, 62, 0, 0, 174, 176, 5, 60, 0, 0, 175,
|
|
141
|
+
169, 1, 0, 0, 0, 175, 171, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 176, 46, 1, 0, 0, 0, 177, 178, 5, 61,
|
|
142
|
+
0, 0, 178, 187, 5, 61, 0, 0, 179, 187, 7, 5, 0, 0, 180, 181, 5, 62, 0, 0, 181, 187, 5, 61, 0, 0,
|
|
143
|
+
182, 183, 5, 60, 0, 0, 183, 187, 5, 61, 0, 0, 184, 185, 5, 33, 0, 0, 185, 187, 5, 61, 0, 0, 186,
|
|
144
|
+
177, 1, 0, 0, 0, 186, 179, 1, 0, 0, 0, 186, 180, 1, 0, 0, 0, 186, 182, 1, 0, 0, 0, 186, 184, 1, 0,
|
|
145
|
+
0, 0, 187, 48, 1, 0, 0, 0, 14, 0, 79, 84, 90, 110, 126, 134, 142, 146, 152, 158, 165, 175, 186,
|
|
136
146
|
1, 6, 0, 0];
|
|
137
147
|
IfcExpressionLexer.DecisionsToDFA = IfcExpressionLexer._ATN.decisionToState.map((ds, index) => new antlr4_1.DFA(ds, index));
|
|
138
148
|
exports.default = IfcExpressionLexer;
|