ifc-expressions 2.1.1 → 2.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/IfcExpression.d.ts +6 -1
- package/dist/cjs/E.js.map +1 -1
- package/dist/cjs/IfcExpression.js +11 -1
- package/dist/cjs/IfcExpression.js.map +1 -1
- package/dist/cjs/compiler/ExprCompiler.js.map +1 -1
- package/dist/cjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -1
- package/dist/cjs/error/MissingFunctionArgumentException.js.map +1 -1
- package/dist/cjs/error/SpuriousFunctionArgumentException.js.map +1 -1
- package/dist/cjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js.map +1 -1
- package/dist/cjs/error/value/DateFormatException.js +10 -0
- package/dist/cjs/error/value/DateFormatException.js.map +1 -0
- package/dist/cjs/expression/boolean/AndExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/BinaryBooleanOpExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/LogicalLiteralExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/NotExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/OrExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/XorExpr.js.map +1 -1
- package/dist/cjs/expression/function/Func.js +2 -0
- package/dist/cjs/expression/function/Func.js.map +1 -1
- package/dist/cjs/expression/function/IfcExpressionFunctions.js +12 -0
- package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgArray.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgBase.js +9 -2
- package/dist/cjs/expression/function/arg/FuncArgBase.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgIfcDateString.js +34 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateString.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateTime.js +27 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateTime.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateTimeString.js +35 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateTimeString.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDuration.js +27 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDuration.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDurationString.js +30 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDurationString.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeStamp.js +27 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeStamp.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js +28 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeString.js +34 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeString.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgLogicalOrBoolean.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgRegexFlag.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgUnion.js +32 -0
- package/dist/cjs/expression/function/arg/FuncArgUnion.js.map +1 -0
- package/dist/cjs/expression/function/impl/ADDDURATION.js +53 -0
- package/dist/cjs/expression/function/impl/ADDDURATION.js.map +1 -0
- package/dist/cjs/expression/function/impl/AT.js.map +1 -1
- package/dist/cjs/expression/function/impl/ApplyRegex.js.map +1 -1
- package/dist/cjs/expression/function/impl/FuncBooleanBinary.js.map +1 -1
- package/dist/cjs/expression/function/impl/IF.js.map +1 -1
- package/dist/cjs/expression/function/impl/NOT.js.map +1 -1
- package/dist/cjs/expression/function/impl/ReplacePattern.js.map +1 -1
- package/dist/cjs/expression/function/impl/SPLIT.js.map +1 -1
- package/dist/cjs/expression/function/impl/SUBSTRING.js.map +1 -1
- package/dist/cjs/expression/function/impl/TOBOOLEAN.js +0 -1
- package/dist/cjs/expression/function/impl/TOBOOLEAN.js.map +1 -1
- package/dist/cjs/expression/function/impl/TOIFCDATE.js +33 -0
- package/dist/cjs/expression/function/impl/TOIFCDATE.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOIFCDATETIME.js +36 -0
- package/dist/cjs/expression/function/impl/TOIFCDATETIME.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOIFCDURATION.js +21 -0
- package/dist/cjs/expression/function/impl/TOIFCDURATION.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOIFCTIME.js +33 -0
- package/dist/cjs/expression/function/impl/TOIFCTIME.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOIFCTIMESTAMP.js +36 -0
- package/dist/cjs/expression/function/impl/TOIFCTIMESTAMP.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOLOGICAL.js.map +1 -1
- package/dist/cjs/expression/function/impl/TONUMERIC.js +0 -1
- package/dist/cjs/expression/function/impl/TONUMERIC.js.map +1 -1
- package/dist/cjs/type/Types.js +35 -0
- package/dist/cjs/type/Types.js.map +1 -1
- package/dist/cjs/util/TextSpan.js +0 -1
- package/dist/cjs/util/TextSpan.js.map +1 -1
- package/dist/cjs/value/BooleanValue.js.map +1 -1
- package/dist/cjs/value/ExpressionValue.js.map +1 -1
- package/dist/cjs/value/IfcDateTimeValue.js +194 -0
- package/dist/cjs/value/IfcDateTimeValue.js.map +1 -0
- package/dist/cjs/value/IfcDateValue.js +68 -0
- package/dist/cjs/value/IfcDateValue.js.map +1 -0
- package/dist/cjs/value/IfcDurationValue.js +149 -0
- package/dist/cjs/value/IfcDurationValue.js.map +1 -0
- package/dist/cjs/value/IfcTimeStampValue.js +62 -0
- package/dist/cjs/value/IfcTimeStampValue.js.map +1 -0
- package/dist/cjs/value/IfcTimeValue.js +93 -0
- package/dist/cjs/value/IfcTimeValue.js.map +1 -0
- package/dist/cjs/value/LogicalValue.js.map +1 -1
- package/dist/cjs/value/Value.js.map +1 -1
- package/dist/cjs/value/ValueType.js +3 -0
- package/dist/cjs/value/ValueType.js.map +1 -0
- package/dist/error/value/DateFormatException.d.ts +3 -0
- package/dist/expression/function/Func.d.ts +3 -0
- package/dist/expression/function/arg/FuncArgBase.d.ts +1 -0
- package/dist/expression/function/arg/FuncArgIfcDateString.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcDateTime.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcDateTimeString.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcDuration.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcDurationString.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcTimeStamp.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcTimeStampNumeric.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcTimeString.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgUnion.d.ts +14 -0
- package/dist/expression/function/impl/ADDDURATION.d.ts +10 -0
- package/dist/expression/function/impl/TOBOOLEAN.d.ts +0 -1
- package/dist/expression/function/impl/TOIFCDATE.d.ts +10 -0
- package/dist/expression/function/impl/TOIFCDATETIME.d.ts +10 -0
- package/dist/expression/function/impl/TOIFCDURATION.d.ts +10 -0
- package/dist/expression/function/impl/TOIFCTIME.d.ts +10 -0
- package/dist/expression/function/impl/TOIFCTIMESTAMP.d.ts +10 -0
- package/dist/expression/function/impl/TONUMERIC.d.ts +0 -1
- package/dist/mjs/E.js.map +1 -1
- package/dist/mjs/IfcExpression.js +6 -1
- package/dist/mjs/IfcExpression.js.map +1 -1
- package/dist/mjs/compiler/ExprCompiler.js.map +1 -1
- package/dist/mjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -1
- package/dist/mjs/error/MissingFunctionArgumentException.js.map +1 -1
- package/dist/mjs/error/SpuriousFunctionArgumentException.js.map +1 -1
- package/dist/mjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js.map +1 -1
- package/dist/mjs/error/value/DateFormatException.js +6 -0
- package/dist/mjs/error/value/DateFormatException.js.map +1 -0
- package/dist/mjs/expression/boolean/AndExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/BinaryBooleanOpExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/LogicalLiteralExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/NotExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/OrExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/XorExpr.js.map +1 -1
- package/dist/mjs/expression/function/Func.js +2 -0
- package/dist/mjs/expression/function/Func.js.map +1 -1
- package/dist/mjs/expression/function/IfcExpressionFunctions.js +12 -0
- package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgArray.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgBase.js +10 -3
- package/dist/mjs/expression/function/arg/FuncArgBase.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgIfcDateString.js +30 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateString.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateTime.js +23 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateTime.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateTimeString.js +31 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateTimeString.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDuration.js +23 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDuration.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDurationString.js +26 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDurationString.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeStamp.js +23 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeStamp.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js +24 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeString.js +30 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeString.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgLogicalOrBoolean.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgRegexFlag.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgUnion.js +28 -0
- package/dist/mjs/expression/function/arg/FuncArgUnion.js.map +1 -0
- package/dist/mjs/expression/function/impl/ADDDURATION.js +49 -0
- package/dist/mjs/expression/function/impl/ADDDURATION.js.map +1 -0
- package/dist/mjs/expression/function/impl/AT.js.map +1 -1
- package/dist/mjs/expression/function/impl/ApplyRegex.js.map +1 -1
- package/dist/mjs/expression/function/impl/FuncBooleanBinary.js.map +1 -1
- package/dist/mjs/expression/function/impl/IF.js.map +1 -1
- package/dist/mjs/expression/function/impl/NOT.js.map +1 -1
- package/dist/mjs/expression/function/impl/ReplacePattern.js.map +1 -1
- package/dist/mjs/expression/function/impl/SPLIT.js.map +1 -1
- package/dist/mjs/expression/function/impl/SUBSTRING.js.map +1 -1
- package/dist/mjs/expression/function/impl/TOBOOLEAN.js +0 -1
- package/dist/mjs/expression/function/impl/TOBOOLEAN.js.map +1 -1
- package/dist/mjs/expression/function/impl/TOIFCDATE.js +29 -0
- package/dist/mjs/expression/function/impl/TOIFCDATE.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOIFCDATETIME.js +32 -0
- package/dist/mjs/expression/function/impl/TOIFCDATETIME.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOIFCDURATION.js +17 -0
- package/dist/mjs/expression/function/impl/TOIFCDURATION.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOIFCTIME.js +29 -0
- package/dist/mjs/expression/function/impl/TOIFCTIME.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOIFCTIMESTAMP.js +32 -0
- package/dist/mjs/expression/function/impl/TOIFCTIMESTAMP.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOLOGICAL.js.map +1 -1
- package/dist/mjs/expression/function/impl/TONUMERIC.js +0 -1
- package/dist/mjs/expression/function/impl/TONUMERIC.js.map +1 -1
- package/dist/mjs/type/Types.js +35 -0
- package/dist/mjs/type/Types.js.map +1 -1
- package/dist/mjs/util/TextSpan.js +0 -1
- package/dist/mjs/util/TextSpan.js.map +1 -1
- package/dist/mjs/value/BooleanValue.js.map +1 -1
- package/dist/mjs/value/ExpressionValue.js.map +1 -1
- package/dist/mjs/value/IfcDateTimeValue.js +186 -0
- package/dist/mjs/value/IfcDateTimeValue.js.map +1 -0
- package/dist/mjs/value/IfcDateValue.js +64 -0
- package/dist/mjs/value/IfcDateValue.js.map +1 -0
- package/dist/mjs/value/IfcDurationValue.js +142 -0
- package/dist/mjs/value/IfcDurationValue.js.map +1 -0
- package/dist/mjs/value/IfcTimeStampValue.js +58 -0
- package/dist/mjs/value/IfcTimeStampValue.js.map +1 -0
- package/dist/mjs/value/IfcTimeValue.js +86 -0
- package/dist/mjs/value/IfcTimeValue.js.map +1 -0
- package/dist/mjs/value/LogicalValue.js.map +1 -1
- package/dist/mjs/value/Value.js.map +1 -1
- package/dist/mjs/value/ValueType.js +2 -0
- package/dist/mjs/value/ValueType.js.map +1 -0
- package/dist/type/Types.d.ts +15 -0
- package/dist/value/ExpressionValue.d.ts +6 -1
- package/dist/value/IfcDateTimeValue.d.ts +44 -0
- package/dist/value/IfcDateValue.d.ts +24 -0
- package/dist/value/IfcDurationValue.d.ts +53 -0
- package/dist/value/IfcTimeStampValue.d.ts +18 -0
- package/dist/value/IfcTimeValue.d.ts +27 -0
- package/dist/value/Value.d.ts +2 -1
- package/dist/value/ValueType.d.ts +6 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAElC,+DAA6E;AAC7E,qDAA+C;AAG/C,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 { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { Types } 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 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"]}
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAElC,+DAA6E;AAC7E,qDAA+C;AAG/C,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 { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { Types } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/IF.ts"],"names":[],"mappings":"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","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
|
+
{"version":3,"sources":["../../src/expression/function/impl/IF.ts"],"names":[],"mappings":"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","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.js\";\nimport { ParserRuleContext } from \"antlr4\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { SpuriousFunctionArgumentException } from \"../../../error/SpuriousFunctionArgumentException.js\";\nimport { MissingFunctionArgumentException } from \"../../../error/MissingFunctionArgumentException.js\";\nimport { Value } from \"../../../value/Value.js\";\nimport { Expr } from \"../../Expr.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/NOT.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAElC,+DAA6E;AAG7E,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 { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.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"]}
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/NOT.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAElC,+DAA6E;AAG7E,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 { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/ReplacePattern.ts"],"names":[],"mappings":";;;AAAA,mDAA6C;AAE7C,+DAA6E;AAC7E,kEAA4D;AAC5D,qDAA8C;AAC9C,8DAAwD;AACxD,4DAAsD;AACtD,2DAAqD;AAKrD,MAAa,cAAe,SAAQ,0BAAU;IAG5C,YAAY,IAAY,EAAE,aAAsB;QAC9C,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CACzB,CAAC,EACD,CAAC,EACD,aAAa;YACX,CAAC,CAAC,IAAI,gCAAa,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC;YACrD,CAAC,CAAC,IAAI,8BAAY,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,kCAAc,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,kCAAc,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,OAAO,GAAI,YAA4B,CAAC,QAAQ,EAAE,CAAC;QACzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,sCAAkB,CAAC,UAAU,CAAC,CAAC;SAC3C;QACD,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAC1C,kCAAc,CAAC,oBAAoB,CACpC,CAAC;YACF,IAAK,aAA8B,CAAC,QAAQ,EAAE,EAAE;gBAC9C,KAAK,GAAG,KAAK,CAAC;aACf;SACF;aAAM;YACL,KAAK,GACH,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAChD,CAAC,QAAQ,EAAE,CAAC;SACd;QACD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAI,UAA0B,CAAC,QAAQ,EAAE,CAAC;QACrD,MAAM,OAAO,GAAI,YAA4B,CAAC,QAAQ,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,sCAAkB,CAAC,4BAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;;AA/CH,wCAgDC;AA/CyB,0BAAW,GAAG,cAAc,CAAC","file":"expression/function/impl/ReplacePattern.js","sourcesContent":["import { ApplyRegex } from \"./ApplyRegex.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { FuncArgRegex } from \"../arg/FuncArgRegex.js\";\nimport { MatchesPattern } from \"./MatchesPattern.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue\";\n\nexport class ReplacePattern extends ApplyRegex {\n private static readonly KEY_REPLACE = \"replaceValue\";\n\n constructor(name: string, simplePattern: boolean) {\n super(name, simplePattern, false);\n this.formalArguments.splice(\n 2,\n 0,\n simplePattern\n ? new FuncArgString(true, ReplacePattern.KEY_REPLACE)\n : new FuncArgRegex(true, ReplacePattern.KEY_REPLACE)\n );\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.STRING;\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const inputValue = evaluatedArguments.get(MatchesPattern.KEY_INPUT);\n const patternValue = evaluatedArguments.get(MatchesPattern.KEY_PATTERN);\n const replaceValue = evaluatedArguments.get(ReplacePattern.KEY_REPLACE);\n const pattern = (patternValue as StringValue).getValue();\n if (pattern.length === 0) {\n return new ExprEvalSuccessObj(inputValue);\n }\n let flags = \"mg\";\n if (this.simplePattern) {\n const caseSensitive = evaluatedArguments.get(\n MatchesPattern.KEY_CASE_INSENSITIVE\n );\n if ((caseSensitive as BooleanValue).getValue()) {\n flags = \"img\";\n }\n } else {\n flags = (\n evaluatedArguments.get(ReplacePattern.KEY_FLAGS) as StringValue\n ).getValue();\n }\n const regex = new RegExp(pattern, flags);\n const input = (inputValue as StringValue).getValue();\n const replace = (replaceValue as StringValue).getValue();\n const result = input.replace(regex, replace);\n return new ExprEvalSuccessObj(StringValue.of(result));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/ReplacePattern.ts"],"names":[],"mappings":";;;AAAA,mDAA6C;AAE7C,+DAA6E;AAC7E,kEAA4D;AAC5D,qDAA8C;AAC9C,8DAAwD;AACxD,4DAAsD;AACtD,2DAAqD;AAKrD,MAAa,cAAe,SAAQ,0BAAU;IAG5C,YAAY,IAAY,EAAE,aAAsB;QAC9C,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,CAAC,MAAM,CACzB,CAAC,EACD,CAAC,EACD,aAAa;YACX,CAAC,CAAC,IAAI,gCAAa,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC;YACrD,CAAC,CAAC,IAAI,8BAAY,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,kCAAc,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,kCAAc,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxE,MAAM,OAAO,GAAI,YAA4B,CAAC,QAAQ,EAAE,CAAC;QACzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,sCAAkB,CAAC,UAAU,CAAC,CAAC;SAC3C;QACD,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAC1C,kCAAc,CAAC,oBAAoB,CACpC,CAAC;YACF,IAAK,aAA8B,CAAC,QAAQ,EAAE,EAAE;gBAC9C,KAAK,GAAG,KAAK,CAAC;aACf;SACF;aAAM;YACL,KAAK,GACH,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAChD,CAAC,QAAQ,EAAE,CAAC;SACd;QACD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAI,UAA0B,CAAC,QAAQ,EAAE,CAAC;QACrD,MAAM,OAAO,GAAI,YAA4B,CAAC,QAAQ,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,IAAI,sCAAkB,CAAC,4BAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;;AA/CH,wCAgDC;AA/CyB,0BAAW,GAAG,cAAc,CAAC","file":"expression/function/impl/ReplacePattern.js","sourcesContent":["import { ApplyRegex } from \"./ApplyRegex.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { FuncArgRegex } from \"../arg/FuncArgRegex.js\";\nimport { MatchesPattern } from \"./MatchesPattern.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\n\nexport class ReplacePattern extends ApplyRegex {\n private static readonly KEY_REPLACE = \"replaceValue\";\n\n constructor(name: string, simplePattern: boolean) {\n super(name, simplePattern, false);\n this.formalArguments.splice(\n 2,\n 0,\n simplePattern\n ? new FuncArgString(true, ReplacePattern.KEY_REPLACE)\n : new FuncArgRegex(true, ReplacePattern.KEY_REPLACE)\n );\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.STRING;\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const inputValue = evaluatedArguments.get(MatchesPattern.KEY_INPUT);\n const patternValue = evaluatedArguments.get(MatchesPattern.KEY_PATTERN);\n const replaceValue = evaluatedArguments.get(ReplacePattern.KEY_REPLACE);\n const pattern = (patternValue as StringValue).getValue();\n if (pattern.length === 0) {\n return new ExprEvalSuccessObj(inputValue);\n }\n let flags = \"mg\";\n if (this.simplePattern) {\n const caseSensitive = evaluatedArguments.get(\n MatchesPattern.KEY_CASE_INSENSITIVE\n );\n if ((caseSensitive as BooleanValue).getValue()) {\n flags = \"img\";\n }\n } else {\n flags = (\n evaluatedArguments.get(ReplacePattern.KEY_FLAGS) as StringValue\n ).getValue();\n }\n const regex = new RegExp(pattern, flags);\n const input = (inputValue as StringValue).getValue();\n const replace = (replaceValue as StringValue).getValue();\n const result = input.replace(regex, replace);\n return new ExprEvalSuccessObj(StringValue.of(result));\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/SPLIT.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,8DAAwD;AAExD,+DAA6E;AAC7E,kEAA4D;AAE5D,qDAAqD;AAErD,gEAA0D;AAE1D,gEAA0D;AAE1D,MAAa,KAAM,SAAQ,cAAI;IAC7B;QACE,KAAK,CAAC,OAAO,EAAE;YACb,IAAI,gCAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAChC,IAAI,gCAAa,CAAC,IAAI,EAAE,WAAW,CAAC;YACpC,IAAI,kCAAc,CAAC,KAAK,EAAE,OAAO,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IACS,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,WAAW,GACf,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAC/B,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GACb,kBAAkB,CAAC,GAAG,CAAC,WAAW,CACnC,CAAC,QAAQ,EAAE,CAAC;QACb,IAAI,MAAM,CAAC;QACX,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACpC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,KAAK,GAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAkB,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzD;QACD,OAAO,IAAI,sCAAkB,CAC3B,0BAAU,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,4BAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAEM,aAAa,CAAC,aAAyB;QAC5C,OAAO,gBAAK,CAAC,KAAK,CAAC,eAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF;AAjCD,sBAiCC","file":"expression/function/impl/SPLIT.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgNumeric } from \"../arg/FuncArgNumeric\";\nimport { NumericValue } from \"../../../value/NumericValue\";\nimport { ArrayValue } from \"../../../value/ArrayValue\";\n\nexport class SPLIT extends Func {\n constructor() {\n super(\"SPLIT\", [\n new FuncArgString(true, \"input\"),\n new FuncArgString(true, \"separator\"),\n new FuncArgNumeric(false, \"limit\"),\n ]);\n }\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const inputString = (\n evaluatedArguments.get(\"input\") as StringValue\n ).getValue();\n const separator = (\n evaluatedArguments.get(\"separator\") as StringValue\n ).getValue();\n let result;\n if (!evaluatedArguments.has(\"limit\")) {\n result = inputString.split(separator);\n } else {\n let limit = (evaluatedArguments.get(\"limit\") as NumericValue).getValue();\n result = inputString.split(separator, limit.toNumber());\n }\n return new ExprEvalSuccessObj(\n ArrayValue.of(result.map((x) => StringValue.of(x)))\n );\n }\n\n public getReturnType(argumentTypes: ExprType[]): ExprType {\n return Types.array(Type.STRING);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/SPLIT.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,8DAAwD;AAExD,+DAA6E;AAC7E,kEAA4D;AAE5D,qDAAqD;AAErD,gEAA0D;AAE1D,gEAA0D;AAE1D,MAAa,KAAM,SAAQ,cAAI;IAC7B;QACE,KAAK,CAAC,OAAO,EAAE;YACb,IAAI,gCAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAChC,IAAI,gCAAa,CAAC,IAAI,EAAE,WAAW,CAAC;YACpC,IAAI,kCAAc,CAAC,KAAK,EAAE,OAAO,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IACS,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,WAAW,GACf,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAC/B,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GACb,kBAAkB,CAAC,GAAG,CAAC,WAAW,CACnC,CAAC,QAAQ,EAAE,CAAC;QACb,IAAI,MAAM,CAAC;QACX,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACpC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,KAAK,GAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAkB,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzD;QACD,OAAO,IAAI,sCAAkB,CAC3B,0BAAU,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,4BAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAEM,aAAa,CAAC,aAAyB;QAC5C,OAAO,gBAAK,CAAC,KAAK,CAAC,eAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF;AAjCD,sBAiCC","file":"expression/function/impl/SPLIT.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgNumeric } from \"../arg/FuncArgNumeric.js\";\nimport { NumericValue } from \"../../../value/NumericValue.js\";\nimport { ArrayValue } from \"../../../value/ArrayValue.js\";\n\nexport class SPLIT extends Func {\n constructor() {\n super(\"SPLIT\", [\n new FuncArgString(true, \"input\"),\n new FuncArgString(true, \"separator\"),\n new FuncArgNumeric(false, \"limit\"),\n ]);\n }\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const inputString = (\n evaluatedArguments.get(\"input\") as StringValue\n ).getValue();\n const separator = (\n evaluatedArguments.get(\"separator\") as StringValue\n ).getValue();\n let result;\n if (!evaluatedArguments.has(\"limit\")) {\n result = inputString.split(separator);\n } else {\n let limit = (evaluatedArguments.get(\"limit\") as NumericValue).getValue();\n result = inputString.split(separator, limit.toNumber());\n }\n return new ExprEvalSuccessObj(\n ArrayValue.of(result.map((x) => StringValue.of(x)))\n );\n }\n\n public getReturnType(argumentTypes: ExprType[]): ExprType {\n return Types.array(Type.STRING);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/SUBSTRING.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,8DAAwD;AAExD,+DAA6E;AAC7E,kEAA4D;AAE5D,qDAA8C;AAE9C,gEAA0D;AAG1D,MAAa,SAAU,SAAQ,cAAI;IACjC;QACE,KAAK,CAAC,WAAW,EAAE;YACjB,IAAI,gCAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAChC,IAAI,kCAAc,CAAC,IAAI,EAAE,UAAU,CAAC;YACpC,IAAI,kCAAc,CAAC,KAAK,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IACS,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,WAAW,GACf,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAC/B,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GACZ,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAClC,CAAC,QAAQ,EAAE,CAAC;QACb,IAAI,MAAM,CAAC;QACX,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpC,MAAM,MAAM,GACV,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAChC,CAAC,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxE;aAAM;YACL,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;SACrD;QACD,OAAO,IAAI,sCAAkB,CAAC,4BAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,aAAyB;QAC5C,OAAO,eAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAjCD,8BAiCC","file":"expression/function/impl/SUBSTRING.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } 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 { FuncArgNumeric } from \"../arg/FuncArgNumeric\";\nimport { NumericValue } from \"../../../value/NumericValue\";\n\nexport class SUBSTRING extends Func {\n constructor() {\n super(\"SUBSTRING\", [\n new FuncArgString(true, \"input\"),\n new FuncArgNumeric(true, \"fromIncl\"),\n new FuncArgNumeric(false, \"toExcl\"),\n ]);\n }\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const inputString = (\n evaluatedArguments.get(\"input\") as StringValue\n ).getValue();\n const fromIncl = (\n evaluatedArguments.get(\"fromIncl\") as NumericValue\n ).getValue();\n let result;\n if (evaluatedArguments.has(\"toExcl\")) {\n const toExcl = (\n evaluatedArguments.get(\"toExcl\") as NumericValue\n ).getValue();\n result = inputString.substring(fromIncl.toNumber(), toExcl.toNumber());\n } else {\n result = inputString.substring(fromIncl.toNumber());\n }\n return new ExprEvalSuccessObj(StringValue.of(result));\n }\n\n public getReturnType(argumentTypes: ExprType[]): ExprType {\n return Type.STRING;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/SUBSTRING.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,8DAAwD;AAExD,+DAA6E;AAC7E,kEAA4D;AAE5D,qDAA8C;AAE9C,gEAA0D;AAG1D,MAAa,SAAU,SAAQ,cAAI;IACjC;QACE,KAAK,CAAC,WAAW,EAAE;YACjB,IAAI,gCAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAChC,IAAI,kCAAc,CAAC,IAAI,EAAE,UAAU,CAAC;YACpC,IAAI,kCAAc,CAAC,KAAK,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IACS,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,WAAW,GACf,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAC/B,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GACZ,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAClC,CAAC,QAAQ,EAAE,CAAC;QACb,IAAI,MAAM,CAAC;QACX,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACpC,MAAM,MAAM,GACV,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAChC,CAAC,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxE;aAAM;YACL,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;SACrD;QACD,OAAO,IAAI,sCAAkB,CAAC,4BAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,aAAyB;QAC5C,OAAO,eAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAjCD,8BAiCC","file":"expression/function/impl/SUBSTRING.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } 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 { FuncArgNumeric } from \"../arg/FuncArgNumeric.js\";\nimport { NumericValue } from \"../../../value/NumericValue.js\";\n\nexport class SUBSTRING extends Func {\n constructor() {\n super(\"SUBSTRING\", [\n new FuncArgString(true, \"input\"),\n new FuncArgNumeric(true, \"fromIncl\"),\n new FuncArgNumeric(false, \"toExcl\"),\n ]);\n }\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const inputString = (\n evaluatedArguments.get(\"input\") as StringValue\n ).getValue();\n const fromIncl = (\n evaluatedArguments.get(\"fromIncl\") as NumericValue\n ).getValue();\n let result;\n if (evaluatedArguments.has(\"toExcl\")) {\n const toExcl = (\n evaluatedArguments.get(\"toExcl\") as NumericValue\n ).getValue();\n result = inputString.substring(fromIncl.toNumber(), toExcl.toNumber());\n } else {\n result = inputString.substring(fromIncl.toNumber());\n }\n return new ExprEvalSuccessObj(StringValue.of(result));\n }\n\n public getReturnType(argumentTypes: ExprType[]): ExprType {\n return Type.STRING;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/TOBOOLEAN.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAKiC;AACjC,kEAA4D;AAE5D,qDAA8C;AAE9C,oEAA8D;AAE9D,oEAA8D;AAC9D,oEAA8D;AAC9D,wEAAkE;AAElE,MAAa,SAAU,SAAQ,cAAI;
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOBOOLEAN.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAKiC;AACjC,kEAA4D;AAE5D,qDAA8C;AAE9C,oEAA8D;AAE9D,oEAA8D;AAC9D,oEAA8D;AAC9D,wEAAkE;AAElE,MAAa,SAAU,SAAQ,cAAI;IACjC;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;CACF;AArED,8BAqEC","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} 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.js\";\nimport { Decimal } from \"decimal.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\nimport { ReferenceValue } from \"../../../value/ReferenceValue.js\";\n\nexport class TOBOOLEAN extends Func {\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,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOIFCDATE = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const StringValue_js_1 = require("../../../value/StringValue.js");
|
|
7
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
8
|
+
const FuncArgIfcDateString_js_1 = require("../arg/FuncArgIfcDateString.js");
|
|
9
|
+
const IfcDateValue_js_1 = require("../../../value/IfcDateValue.js");
|
|
10
|
+
const IfcDateTimeValue_js_1 = require("../../../value/IfcDateTimeValue.js");
|
|
11
|
+
const FuncArgUnion_js_1 = require("../arg/FuncArgUnion.js");
|
|
12
|
+
const FuncArgIfcDateTime_js_1 = require("../arg/FuncArgIfcDateTime.js");
|
|
13
|
+
class TOIFCDATE extends Func_js_1.Func {
|
|
14
|
+
constructor() {
|
|
15
|
+
super("TOIFCDATE", [
|
|
16
|
+
FuncArgUnion_js_1.FuncArgUnion.of(true, "date", [FuncArgIfcDateTime_js_1.FuncArgIfcDateTime, FuncArgIfcDateString_js_1.FuncArgIfcDateString]),
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
calculateResult(callingExpr, evaluatedArguments) {
|
|
20
|
+
const input = evaluatedArguments.get("date");
|
|
21
|
+
if (input instanceof StringValue_js_1.StringValue) {
|
|
22
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(IfcDateValue_js_1.IfcDateValue.of(input.getValue()));
|
|
23
|
+
}
|
|
24
|
+
else if (input instanceof IfcDateTimeValue_js_1.IfcDateTimeValue) {
|
|
25
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(input.toIfcDateValue());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
getReturnType(argumentTypes) {
|
|
29
|
+
return Types_js_1.Type.IFC_DATE;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.TOIFCDATE = TOIFCDATE;
|
|
33
|
+
//# sourceMappingURL=TOIFCDATE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOIFCDATE.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAC7E,kEAA4D;AAE5D,qDAA8C;AAE9C,4EAAsE;AACtE,oEAA8D;AAC9D,4EAAsE;AACtE,4DAAsD;AACtD,wEAAkE;AAElE,MAAa,SAAU,SAAQ,cAAI;IACjC;QACE,KAAK,CAAC,WAAW,EAAE;YACjB,8BAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,0CAAkB,EAAE,8CAAoB,CAAC,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,KAAK,YAAY,4BAAW,EAAE;YAChC,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SAClE;aAAM,IAAI,KAAK,YAAY,sCAAgB,EAAE;YAC5C,OAAO,IAAI,sCAAkB,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;SACvD;IACH,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAtBD,8BAsBC","file":"expression/function/impl/TOIFCDATE.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } 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 { FuncArgIfcDateString } from \"../arg/FuncArgIfcDateString.js\";\nimport { IfcDateValue } from \"../../../value/IfcDateValue.js\";\nimport { IfcDateTimeValue } from \"../../../value/IfcDateTimeValue.js\";\nimport { FuncArgUnion } from \"../arg/FuncArgUnion.js\";\nimport { FuncArgIfcDateTime } from \"../arg/FuncArgIfcDateTime.js\";\n\nexport class TOIFCDATE extends Func {\n constructor() {\n super(\"TOIFCDATE\", [\n FuncArgUnion.of(true, \"date\", [FuncArgIfcDateTime, FuncArgIfcDateString]),\n ]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const input = evaluatedArguments.get(\"date\");\n if (input instanceof StringValue) {\n return new ExprEvalSuccessObj(IfcDateValue.of(input.getValue()));\n } else if (input instanceof IfcDateTimeValue) {\n return new ExprEvalSuccessObj(input.toIfcDateValue());\n }\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.IFC_DATE;\n }\n}\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOIFCDATETIME = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const StringValue_js_1 = require("../../../value/StringValue.js");
|
|
7
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
8
|
+
const IfcDateTimeValue_js_1 = require("../../../value/IfcDateTimeValue.js");
|
|
9
|
+
const FuncArgIfcDateTimeString_js_1 = require("../arg/FuncArgIfcDateTimeString.js");
|
|
10
|
+
const IfcTimeStampValue_js_1 = require("../../../value/IfcTimeStampValue.js");
|
|
11
|
+
const FuncArgUnion_js_1 = require("../arg/FuncArgUnion.js");
|
|
12
|
+
const FuncArgIfcTimeStamp_js_1 = require("../arg/FuncArgIfcTimeStamp.js");
|
|
13
|
+
class TOIFCDATETIME extends Func_js_1.Func {
|
|
14
|
+
constructor() {
|
|
15
|
+
super("TOIFCDATETIME", [
|
|
16
|
+
FuncArgUnion_js_1.FuncArgUnion.of(true, "pointInTime", [
|
|
17
|
+
FuncArgIfcDateTimeString_js_1.FuncArgIfcDateTimeString,
|
|
18
|
+
FuncArgIfcTimeStamp_js_1.FuncArgIfcTimeStamp,
|
|
19
|
+
]),
|
|
20
|
+
]);
|
|
21
|
+
}
|
|
22
|
+
calculateResult(callingExpr, evaluatedArguments) {
|
|
23
|
+
const value = evaluatedArguments.get("pointInTime");
|
|
24
|
+
if (value instanceof StringValue_js_1.StringValue) {
|
|
25
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(IfcDateTimeValue_js_1.IfcDateTimeValue.of(value.getValue()));
|
|
26
|
+
}
|
|
27
|
+
else if (value instanceof IfcTimeStampValue_js_1.IfcTimeStampValue) {
|
|
28
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(value.toIfcDateTimeValue());
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
getReturnType(argumentTypes) {
|
|
32
|
+
return Types_js_1.Type.IFC_DATE_TIME;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.TOIFCDATETIME = TOIFCDATETIME;
|
|
36
|
+
//# sourceMappingURL=TOIFCDATETIME.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOIFCDATETIME.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAC7E,kEAA4D;AAE5D,qDAA8C;AAE9C,4EAAsE;AACtE,oFAA8E;AAC9E,8EAAwE;AACxE,4DAAsD;AACtD,0EAAoE;AAEpE,MAAa,aAAc,SAAQ,cAAI;IACrC;QACE,KAAK,CAAC,eAAe,EAAE;YACrB,8BAAY,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE;gBACnC,sDAAwB;gBACxB,4CAAmB;aACpB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,KAAK,YAAY,4BAAW,EAAE;YAChC,OAAO,IAAI,sCAAkB,CAC3B,sCAAgB,CAAC,EAAE,CAAE,KAAqB,CAAC,QAAQ,EAAE,CAAC,CACvD,CAAC;SACH;aAAM,IAAI,KAAK,YAAY,wCAAiB,EAAE;YAC7C,OAAO,IAAI,sCAAkB,CAC1B,KAA2B,CAAC,kBAAkB,EAAE,CAClD,CAAC;SACH;IACH,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF;AA7BD,sCA6BC","file":"expression/function/impl/TOIFCDATETIME.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } 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 { IfcDateTimeValue } from \"../../../value/IfcDateTimeValue.js\";\nimport { FuncArgIfcDateTimeString } from \"../arg/FuncArgIfcDateTimeString.js\";\nimport { IfcTimeStampValue } from \"../../../value/IfcTimeStampValue.js\";\nimport { FuncArgUnion } from \"../arg/FuncArgUnion.js\";\nimport { FuncArgIfcTimeStamp } from \"../arg/FuncArgIfcTimeStamp.js\";\n\nexport class TOIFCDATETIME extends Func {\n constructor() {\n super(\"TOIFCDATETIME\", [\n FuncArgUnion.of(true, \"pointInTime\", [\n FuncArgIfcDateTimeString,\n FuncArgIfcTimeStamp,\n ]),\n ]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const value = evaluatedArguments.get(\"pointInTime\");\n if (value instanceof StringValue) {\n return new ExprEvalSuccessObj(\n IfcDateTimeValue.of((value as StringValue).getValue())\n );\n } else if (value instanceof IfcTimeStampValue) {\n return new ExprEvalSuccessObj(\n (value as IfcTimeStampValue).toIfcDateTimeValue()\n );\n }\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.IFC_DATE_TIME;\n }\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOIFCDURATION = 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 FuncArgIfcDurationString_js_1 = require("../arg/FuncArgIfcDurationString.js");
|
|
8
|
+
const IfcDurationValue_js_1 = require("../../../value/IfcDurationValue.js");
|
|
9
|
+
class TOIFCDURATION extends Func_js_1.Func {
|
|
10
|
+
constructor() {
|
|
11
|
+
super("TOIFCDURATION", [new FuncArgIfcDurationString_js_1.FuncArgIfcDurationString(true, "duration")]);
|
|
12
|
+
}
|
|
13
|
+
calculateResult(callingExpr, evaluatedArguments) {
|
|
14
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(IfcDurationValue_js_1.IfcDurationValue.of(evaluatedArguments.get("duration").getValue()));
|
|
15
|
+
}
|
|
16
|
+
getReturnType(argumentTypes) {
|
|
17
|
+
return Types_js_1.Type.IFC_DURATION;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.TOIFCDURATION = TOIFCDURATION;
|
|
21
|
+
//# sourceMappingURL=TOIFCDURATION.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOIFCDURATION.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAG7E,qDAA8C;AAE9C,oFAA8E;AAC9E,4EAAsE;AAEtE,MAAa,aAAc,SAAQ,cAAI;IACrC;QACE,KAAK,CAAC,eAAe,EAAE,CAAC,IAAI,sDAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,OAAO,IAAI,sCAAkB,CAC3B,sCAAgB,CAAC,EAAE,CAChB,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAiB,CAAC,QAAQ,EAAE,CAC/D,CACF,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAnBD,sCAmBC","file":"expression/function/impl/TOIFCDURATION.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } 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 { FuncArgIfcDurationString } from \"../arg/FuncArgIfcDurationString.js\";\nimport { IfcDurationValue } from \"../../../value/IfcDurationValue.js\";\n\nexport class TOIFCDURATION extends Func {\n constructor() {\n super(\"TOIFCDURATION\", [new FuncArgIfcDurationString(true, \"duration\")]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n return new ExprEvalSuccessObj(\n IfcDurationValue.of(\n (evaluatedArguments.get(\"duration\") as StringValue).getValue()\n )\n );\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.IFC_DURATION;\n }\n}\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOIFCTIME = void 0;
|
|
4
|
+
const Func_js_1 = require("../Func.js");
|
|
5
|
+
const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
|
|
6
|
+
const StringValue_js_1 = require("../../../value/StringValue.js");
|
|
7
|
+
const Types_js_1 = require("../../../type/Types.js");
|
|
8
|
+
const IfcDateTimeValue_js_1 = require("../../../value/IfcDateTimeValue.js");
|
|
9
|
+
const FuncArgIfcTimeString_js_1 = require("../arg/FuncArgIfcTimeString.js");
|
|
10
|
+
const IfcTimeValue_js_1 = require("../../../value/IfcTimeValue.js");
|
|
11
|
+
const FuncArgUnion_js_1 = require("../arg/FuncArgUnion.js");
|
|
12
|
+
const FuncArgIfcDateTime_js_1 = require("../arg/FuncArgIfcDateTime.js");
|
|
13
|
+
class TOIFCTIME extends Func_js_1.Func {
|
|
14
|
+
constructor() {
|
|
15
|
+
super("TOIFCTIME", [
|
|
16
|
+
FuncArgUnion_js_1.FuncArgUnion.of(true, "time", [FuncArgIfcTimeString_js_1.FuncArgIfcTimeString, FuncArgIfcDateTime_js_1.FuncArgIfcDateTime]),
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
calculateResult(callingExpr, evaluatedArguments) {
|
|
20
|
+
const input = evaluatedArguments.get("time");
|
|
21
|
+
if (input instanceof StringValue_js_1.StringValue) {
|
|
22
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(IfcTimeValue_js_1.IfcTimeValue.of(input.getValue()));
|
|
23
|
+
}
|
|
24
|
+
else if (input instanceof IfcDateTimeValue_js_1.IfcDateTimeValue) {
|
|
25
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(input.toIfcTimeValue());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
getReturnType(argumentTypes) {
|
|
29
|
+
return Types_js_1.Type.IFC_TIME;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.TOIFCTIME = TOIFCTIME;
|
|
33
|
+
//# sourceMappingURL=TOIFCTIME.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOIFCTIME.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAC7E,kEAA4D;AAE5D,qDAA8C;AAE9C,4EAAsE;AACtE,4EAAsE;AACtE,oEAA8D;AAC9D,4DAAsD;AACtD,wEAAkE;AAElE,MAAa,SAAU,SAAQ,cAAI;IACjC;QACE,KAAK,CAAC,WAAW,EAAE;YACjB,8BAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,8CAAoB,EAAE,0CAAkB,CAAC,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,KAAK,YAAY,4BAAW,EAAE;YAChC,OAAO,IAAI,sCAAkB,CAAC,8BAAY,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SAClE;aAAM,IAAI,KAAK,YAAY,sCAAgB,EAAE;YAC5C,OAAO,IAAI,sCAAkB,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;SACvD;IACH,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAtBD,8BAsBC","file":"expression/function/impl/TOIFCTIME.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } 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 { IfcDateTimeValue } from \"../../../value/IfcDateTimeValue.js\";\nimport { FuncArgIfcTimeString } from \"../arg/FuncArgIfcTimeString.js\";\nimport { IfcTimeValue } from \"../../../value/IfcTimeValue.js\";\nimport { FuncArgUnion } from \"../arg/FuncArgUnion.js\";\nimport { FuncArgIfcDateTime } from \"../arg/FuncArgIfcDateTime.js\";\n\nexport class TOIFCTIME extends Func {\n constructor() {\n super(\"TOIFCTIME\", [\n FuncArgUnion.of(true, \"time\", [FuncArgIfcTimeString, FuncArgIfcDateTime]),\n ]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const input = evaluatedArguments.get(\"time\");\n if (input instanceof StringValue) {\n return new ExprEvalSuccessObj(IfcTimeValue.of(input.getValue()));\n } else if (input instanceof IfcDateTimeValue) {\n return new ExprEvalSuccessObj(input.toIfcTimeValue());\n }\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.IFC_TIME;\n }\n}\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOIFCTIMESTAMP = 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 FuncArgIfcTimeStampNumeric_js_1 = require("../arg/FuncArgIfcTimeStampNumeric.js");
|
|
8
|
+
const IfcTimeStampValue_js_1 = require("../../../value/IfcTimeStampValue.js");
|
|
9
|
+
const IfcExpression_js_1 = require("../../../IfcExpression.js");
|
|
10
|
+
const IfcDateTimeValue_js_1 = require("../../../value/IfcDateTimeValue.js");
|
|
11
|
+
const FuncArgUnion_js_1 = require("../arg/FuncArgUnion.js");
|
|
12
|
+
const FuncArgIfcDateTime_js_1 = require("../arg/FuncArgIfcDateTime.js");
|
|
13
|
+
class TOIFCTIMESTAMP extends Func_js_1.Func {
|
|
14
|
+
constructor() {
|
|
15
|
+
super("TOIFCTIMESTAMP", [
|
|
16
|
+
FuncArgUnion_js_1.FuncArgUnion.of(true, "timeStamp", [
|
|
17
|
+
FuncArgIfcTimeStampNumeric_js_1.FuncArgIfcTimeStampNumeric,
|
|
18
|
+
FuncArgIfcDateTime_js_1.FuncArgIfcDateTime,
|
|
19
|
+
]),
|
|
20
|
+
]);
|
|
21
|
+
}
|
|
22
|
+
calculateResult(callingExpr, evaluatedArguments) {
|
|
23
|
+
const input = evaluatedArguments.get("timeStamp");
|
|
24
|
+
if (input instanceof IfcExpression_js_1.NumericValue) {
|
|
25
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(IfcTimeStampValue_js_1.IfcTimeStampValue.of(input.getValue()));
|
|
26
|
+
}
|
|
27
|
+
else if (input instanceof IfcDateTimeValue_js_1.IfcDateTimeValue) {
|
|
28
|
+
return new ExprEvalResult_js_1.ExprEvalSuccessObj(input.toIfcTimeStampValue());
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
getReturnType(argumentTypes) {
|
|
32
|
+
return Types_js_1.Type.IFC_TIME_STAMP;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.TOIFCTIMESTAMP = TOIFCTIMESTAMP;
|
|
36
|
+
//# sourceMappingURL=TOIFCTIMESTAMP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOIFCTIMESTAMP.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAE7E,qDAA8C;AAE9C,wFAAkF;AAClF,8EAAwE;AACxE,gEAAyD;AACzD,4EAAsE;AACtE,4DAAsD;AACtD,wEAAkE;AAElE,MAAa,cAAe,SAAQ,cAAI;IACtC;QACE,KAAK,CAAC,gBAAgB,EAAE;YACtB,8BAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE;gBACjC,0DAA0B;gBAC1B,0CAAkB;aACnB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,KAAK,YAAY,+BAAY,EAAE;YACjC,OAAO,IAAI,sCAAkB,CAAC,wCAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SACvE;aAAM,IAAI,KAAK,YAAY,sCAAgB,EAAE;YAC5C,OAAO,IAAI,sCAAkB,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;SAC5D;IACH,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,eAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF;AAzBD,wCAyBC","file":"expression/function/impl/TOIFCTIMESTAMP.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgIfcTimeStampNumeric } from \"../arg/FuncArgIfcTimeStampNumeric.js\";\nimport { IfcTimeStampValue } from \"../../../value/IfcTimeStampValue.js\";\nimport { NumericValue } from \"../../../IfcExpression.js\";\nimport { IfcDateTimeValue } from \"../../../value/IfcDateTimeValue.js\";\nimport { FuncArgUnion } from \"../arg/FuncArgUnion.js\";\nimport { FuncArgIfcDateTime } from \"../arg/FuncArgIfcDateTime.js\";\n\nexport class TOIFCTIMESTAMP extends Func {\n constructor() {\n super(\"TOIFCTIMESTAMP\", [\n FuncArgUnion.of(true, \"timeStamp\", [\n FuncArgIfcTimeStampNumeric,\n FuncArgIfcDateTime,\n ]),\n ]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const input = evaluatedArguments.get(\"timeStamp\");\n if (input instanceof NumericValue) {\n return new ExprEvalSuccessObj(IfcTimeStampValue.of(input.getValue()));\n } else if (input instanceof IfcDateTimeValue) {\n return new ExprEvalSuccessObj(input.toIfcTimeStampValue());\n }\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.IFC_TIME_STAMP;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/TOLOGICAL.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAMiC;AAEjC,qDAA8C;AAE9C,oEAA8D;AAC9D,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 { ExprType } from \"../../../type/ExprType.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\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"]}
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TOLOGICAL.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAMiC;AAEjC,qDAA8C;AAE9C,oEAA8D;AAC9D,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 { ExprType } from \"../../../type/ExprType.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean.js\";\nimport { Expr } from \"../../Expr.js\";\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expression/function/impl/TONUMERIC.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAKiC;AACjC,kEAA4D;AAE5D,qDAA8C;AAE9C,oEAA8D;AAC9D,2CAAqC;AACrC,oEAA8D;AAC9D,oEAA8D;AAC9D,wEAAkE;AAElE,MAAa,SAAU,SAAQ,cAAI;
|
|
1
|
+
{"version":3,"sources":["../../src/expression/function/impl/TONUMERIC.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,wDAAkD;AAElD,+DAKiC;AACjC,kEAA4D;AAE5D,qDAA8C;AAE9C,oEAA8D;AAC9D,2CAAqC;AACrC,oEAA8D;AAC9D,oEAA8D;AAC9D,wEAAkE;AAElE,MAAa,SAAU,SAAQ,cAAI;IACjC;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;CACF;AAhDD,8BAgDC","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} 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.js\";\nimport { Decimal } from \"decimal.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\nimport { ReferenceValue } from \"../../../value/ReferenceValue.js\";\n\nexport class TONUMERIC extends Func {\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"]}
|
package/dist/cjs/type/Types.js
CHANGED
|
@@ -13,6 +13,11 @@ Type.NUMERIC = new SimpleType_js_1.SimpleType("numeric");
|
|
|
13
13
|
Type.STRING = new SimpleType_js_1.SimpleType("string");
|
|
14
14
|
Type.LOGICAL = new SimpleType_js_1.SimpleType("logical");
|
|
15
15
|
Type.BOOLEAN = new SimpleType_js_1.SimpleType("boolean", Type.LOGICAL);
|
|
16
|
+
Type.IFC_DATE = new SimpleType_js_1.SimpleType("ifcDate", Type.STRING);
|
|
17
|
+
Type.IFC_DATE_TIME = new SimpleType_js_1.SimpleType("ifcDateTime", Type.STRING);
|
|
18
|
+
Type.IFC_TIME = new SimpleType_js_1.SimpleType("ifcTime", Type.STRING);
|
|
19
|
+
Type.IFC_DURATION = new SimpleType_js_1.SimpleType("ifcDuration", Type.STRING);
|
|
20
|
+
Type.IFC_TIME_STAMP = new SimpleType_js_1.SimpleType("ifcTimeStamp", Type.NUMERIC);
|
|
16
21
|
Type.IFC_OBJECT_REF = new SimpleType_js_1.SimpleType("ifcObjectRef");
|
|
17
22
|
Type.IFC_ELEMENT_REF = new SimpleType_js_1.SimpleType("ifcElementRef", Type.IFC_OBJECT_REF);
|
|
18
23
|
Type.IFC_PROPERTY_REF = new SimpleType_js_1.SimpleType("ifcPropertyRef", Type.IFC_OBJECT_REF);
|
|
@@ -45,6 +50,21 @@ class Types {
|
|
|
45
50
|
static isString(actualType) {
|
|
46
51
|
return this.isType(actualType, Type.STRING);
|
|
47
52
|
}
|
|
53
|
+
static isIfcDate(actualType) {
|
|
54
|
+
return this.isType(actualType, Type.IFC_DATE);
|
|
55
|
+
}
|
|
56
|
+
static isIfcDateTime(actualType) {
|
|
57
|
+
return this.isType(actualType, Type.IFC_DATE_TIME);
|
|
58
|
+
}
|
|
59
|
+
static isIfcTime(actualType) {
|
|
60
|
+
return this.isType(actualType, Type.IFC_TIME);
|
|
61
|
+
}
|
|
62
|
+
static isIfcDuration(actualType) {
|
|
63
|
+
return this.isType(actualType, Type.IFC_DURATION);
|
|
64
|
+
}
|
|
65
|
+
static isIfcTimeStamp(actualType) {
|
|
66
|
+
return this.isType(actualType, Type.IFC_TIME_STAMP);
|
|
67
|
+
}
|
|
48
68
|
static isType(actualType, type) {
|
|
49
69
|
return actualType === type;
|
|
50
70
|
}
|
|
@@ -57,6 +77,21 @@ class Types {
|
|
|
57
77
|
static string() {
|
|
58
78
|
return Type.STRING;
|
|
59
79
|
}
|
|
80
|
+
static ifcDate() {
|
|
81
|
+
return Type.IFC_DATE;
|
|
82
|
+
}
|
|
83
|
+
static ifcDateTime() {
|
|
84
|
+
return Type.IFC_DATE_TIME;
|
|
85
|
+
}
|
|
86
|
+
static ifcTime() {
|
|
87
|
+
return Type.IFC_TIME;
|
|
88
|
+
}
|
|
89
|
+
static ifcDuration() {
|
|
90
|
+
return Type.IFC_DURATION;
|
|
91
|
+
}
|
|
92
|
+
static ifcTimeStamp() {
|
|
93
|
+
return Type.IFC_TIME_STAMP;
|
|
94
|
+
}
|
|
60
95
|
static numeric() {
|
|
61
96
|
return Type.NUMERIC;
|
|
62
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/type/Types.ts"],"names":[],"mappings":";;;AACA,mDAA6C;AAC7C,6DAAuD;AAEvD,iDAA2C;AAC3C,iDAA2C;AAE3C,MAAa,IAAI;;AAAjB,
|
|
1
|
+
{"version":3,"sources":["../../src/type/Types.ts"],"names":[],"mappings":"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","file":"type/Types.js","sourcesContent":["import { ExpressionTypeError } from \"../error/ExpressionTypeError.js\";\nimport { SimpleType } from \"./SimpleType.js\";\nimport { TypeDisjunction } from \"./TypeDisjunction.js\";\nimport { ExprType } from \"./ExprType.js\";\nimport { ArrayType } from \"./ArrayType.js\";\nimport { TupleType } from \"./TupleType.js\";\n\nexport class Type {\n static readonly ANY = new SimpleType(\"any\");\n static readonly NUMERIC = new SimpleType(\"numeric\");\n static readonly STRING = new SimpleType(\"string\");\n static readonly LOGICAL = new SimpleType(\"logical\");\n static readonly BOOLEAN = new SimpleType(\"boolean\", Type.LOGICAL);\n static readonly IFC_DATE = new SimpleType(\"ifcDate\", Type.STRING);\n static readonly IFC_DATE_TIME = new SimpleType(\"ifcDateTime\", Type.STRING);\n static readonly IFC_TIME = new SimpleType(\"ifcTime\", Type.STRING);\n static readonly IFC_DURATION = new SimpleType(\"ifcDuration\", Type.STRING);\n static readonly IFC_TIME_STAMP = new SimpleType(\"ifcTimeStamp\", Type.NUMERIC);\n\n static readonly IFC_OBJECT_REF = new SimpleType(\"ifcObjectRef\");\n static readonly IFC_ELEMENT_REF = new SimpleType(\n \"ifcElementRef\",\n Type.IFC_OBJECT_REF\n );\n static readonly IFC_PROPERTY_REF = new SimpleType(\n \"ifcPropertyRef\",\n Type.IFC_OBJECT_REF\n );\n static readonly IFC_PROPERTY_SET_REF = new SimpleType(\n \"ifcPropertySetRef\",\n Type.IFC_OBJECT_REF\n );\n static readonly IFC_TYPE_OBJECT_REF = new SimpleType(\n \"ifcTypeObjectRef\",\n Type.IFC_OBJECT_REF\n );\n static readonly ARRAY = new SimpleType(\"array\");\n}\n\nexport class Types {\n public static or(...types: Array<ExprType>) {\n const disjunction = new TypeDisjunction(...types);\n if (disjunction.getTypes().length == 1) {\n return disjunction.getTypes()[0];\n }\n return disjunction;\n }\n public static array(elementType: ExprType): ArrayType {\n return new ArrayType(elementType);\n }\n public static tuple(...types: Array<ExprType>): TupleType {\n return new TupleType(...types);\n }\n public static isNumeric(actualType: ExprType) {\n return this.isType(actualType, Type.NUMERIC);\n }\n public static isBoolean(actualType: ExprType) {\n return this.isType(actualType, Type.BOOLEAN);\n }\n public static isLogical(actualType: ExprType) {\n return this.isType(actualType, Type.LOGICAL);\n }\n public static isString(actualType: ExprType) {\n return this.isType(actualType, Type.STRING);\n }\n public static isIfcDate(actualType: ExprType) {\n return this.isType(actualType, Type.IFC_DATE);\n }\n public static isIfcDateTime(actualType: ExprType) {\n return this.isType(actualType, Type.IFC_DATE_TIME);\n }\n public static isIfcTime(actualType: ExprType) {\n return this.isType(actualType, Type.IFC_TIME);\n }\n public static isIfcDuration(actualType: ExprType) {\n return this.isType(actualType, Type.IFC_DURATION);\n }\n public static isIfcTimeStamp(actualType: ExprType) {\n return this.isType(actualType, Type.IFC_TIME_STAMP);\n }\n public static isType(actualType: ExprType, type: ExprType) {\n return actualType === type;\n }\n public static boolean() {\n return Type.BOOLEAN;\n }\n public static logical() {\n return Type.LOGICAL;\n }\n public static string() {\n return Type.STRING;\n }\n public static ifcDate() {\n return Type.IFC_DATE;\n }\n public static ifcDateTime() {\n return Type.IFC_DATE_TIME;\n }\n public static ifcTime() {\n return Type.IFC_TIME;\n }\n public static ifcDuration() {\n return Type.IFC_DURATION;\n }\n public static ifcTimeStamp() {\n return Type.IFC_TIME_STAMP;\n }\n public static numeric() {\n return Type.NUMERIC;\n }\n public static ifcObjectRef() {\n return Type.IFC_OBJECT_REF;\n }\n\n public static requireIsAssignableFrom(\n expectedType: ExprType,\n actualType: ExprType,\n exceptionProducer: () => ExpressionTypeError\n ) {\n if (!expectedType.isAssignableFrom(actualType)) {\n throw exceptionProducer();\n }\n }\n\n /**\n * Requires overlap if actual is a disjunction, assignable from if it is a type\n * @param expectedType\n * @param actualType\n * @param exceptionProducer\n */\n public static requireWeakIsAssignableFrom(\n expectedType: ExprType,\n actualType: ExprType,\n exceptionProducer: () => ExpressionTypeError\n ) {\n if (expectedType.isAssignableFrom(actualType)) {\n return;\n }\n if (actualType instanceof TypeDisjunction) {\n if (expectedType.overlapsWith(actualType)) {\n return;\n }\n }\n if (actualType instanceof TupleType) {\n const weakerType = Types.array(Types.or(...actualType.getTypes()));\n if (expectedType.isAssignableFrom(weakerType)) {\n return;\n }\n }\n throw exceptionProducer();\n }\n\n static requireTypesOverlap(\n actualType: ExprType,\n actualType2: ExprType,\n exceptionProducer: () => ExpressionTypeError\n ) {\n if (!actualType.overlapsWith(actualType2)) {\n throw exceptionProducer();\n }\n }\n}\n"]}
|
|
@@ -95,7 +95,6 @@ class TextSpan {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
return result.join("\n");
|
|
98
|
-
throw new Error("Cannot compute text coverage, this should not have happened. There is a bug in the sanity checks for the start and end positions.");
|
|
99
98
|
}
|
|
100
99
|
underlineOneLine(line, ulChar = "~", ulStart = 0, ulLength = line.length - ulStart) {
|
|
101
100
|
if (ulChar.length != 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/TextSpan.ts"],"names":[],"mappings":"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","file":"util/TextSpan.js","sourcesContent":["import { TextPosition } from \"./TextPosition.js\";\n\nexport class TextSpan {\n private _start: TextPosition;\n private _end: TextPosition;\n\n constructor(start: TextPosition, end: TextPosition) {\n if (start.isBefore(end)) {\n this._start = start;\n this._end = end;\n } else {\n this._start = end;\n this._end = start;\n }\n }\n\n static of(\n fromLine: number,\n fromColumn: number,\n toLine: number,\n toColumn: number\n ) {\n return new TextSpan(\n new TextPosition(fromLine, fromColumn),\n new TextPosition(toLine, toColumn)\n );\n }\n\n get start(): TextPosition {\n return this._start;\n }\n\n get end(): TextPosition {\n return this._end;\n }\n\n toString(): string {\n return this._start.toString() + \" - \" + this._end.toString();\n }\n\n public getCoveredText(input: string) {\n if (\n this._start.isFirstLine() &&\n this._end.isFirstLine() &&\n this.end.column <= input.length\n ) {\n return input.substr(this._start.column - 1, this._end.column - 1);\n }\n const lines = input.split(\"\\n\");\n if (lines.length > this._end.line) {\n // this is correct: _end.line is 1-based, so if there are 3 lines, length is 3 and the last TextPosition is line is line 3, col x.\n throw new Error(\n `Cannot compute covered text. End position ${this._end.toString()} is past the number of lines in the text (${\n lines.length\n })`\n );\n }\n if (\n lines.length == this.end.line &&\n lines[lines.length - 1].length > this._end.column\n ) {\n throw new Error(\n `Cannot compute covered text. End position ${this._end.toString()} is past the last position in the last column in the last line of the text (${\n lines.length\n }:${lines[lines.length - 1].length})`\n );\n }\n if (this._start.isAtSameLine(this._end)) {\n return lines[this.start.line - 1].substr(\n this._start.column - 1,\n this._end.column - 1\n );\n }\n let result = \"\";\n let copying = false;\n for (let line = this._start.line; line <= this.end.line; line++) {\n if (line === this._start.line) {\n result += lines[line - 1].substr(this.start.column - 1);\n copying = true;\n } else if (line === this._end.line) {\n result += lines[line - 1].substr(0, this.end.column - 1);\n return result;\n } else if (copying) {\n result += lines[line - 1];\n }\n }\n throw new Error(\n \"Cannot compute text coverage, this should not have happened. There is a bug in the sanity checks for the start and end positions.\"\n );\n }\n\n public underline(input: string, underlineChar: string = \"~\"): string {\n const lines = input.split(\"\\n\");\n if (lines.length < this._end.line) {\n // this is correct: _end.line is 1-based, so if there are 3 lines, length is 3 and the last TextPosition is line is line 3, col x.\n throw new Error(\n `Cannot compute covered text. End position ${this._end.toString()} is past the number of lines in the text (${\n lines.length\n })`\n );\n }\n if (\n lines.length == this.end.line &&\n lines[lines.length - 1].length + 1 < this._end.column\n ) {\n //tolerate a one-off error as the antlr4 syntax error is sometimes at index 0, sometimes at index [length].\n throw new Error(\n `Cannot compute covered text. End position ${this._end.toString()} is past the last position in the last column in the last line of the text (${\n lines.length\n }:${lines[lines.length - 1].length})`\n );\n }\n let result = [];\n let underlining = false;\n for (let line = 1; line <= lines.length; line++) {\n if (line === this._start.line && line === this._end.line) {\n result.push(\n ...this.underlineOneLine(\n lines[line - 1],\n underlineChar,\n this.start.column - 1,\n this._end.column - this._start.column + 1\n )\n );\n } else if (line === this._start.line) {\n result.push(\n ...this.underlineOneLine(\n lines[line - 1],\n underlineChar,\n this.start.column - 1\n )\n );\n underlining = true;\n } else if (line === this._end.line) {\n result.push(\n ...this.underlineOneLine(\n lines[line - 1],\n underlineChar,\n 0,\n this.end.column\n )\n );\n underlining = false;\n } else {\n if (underlining) {\n result.push(...this.underlineOneLine(lines[line - 1], underlineChar));\n } else {\n result.push(lines[line - 1]);\n }\n }\n }\n return result.join(\"\\n\");\n throw new Error(\n \"Cannot compute text coverage, this should not have happened. There is a bug in the sanity checks for the start and end positions.\"\n );\n }\n\n private underlineOneLine(\n line: string,\n ulChar: string = \"~\",\n ulStart: number = 0,\n ulLength: number = line.length - ulStart\n ): Array<string> {\n if (ulChar.length != 1) {\n throw new Error(\n `Underline char must be a string of length 1, ${ulChar} does not qualify`\n );\n }\n if (ulLength <= 0) {\n ulLength = 1;\n }\n return [line, \" \".repeat(ulStart) + ulChar.repeat(ulLength)];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/util/TextSpan.ts"],"names":[],"mappings":"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","file":"util/TextSpan.js","sourcesContent":["import { TextPosition } from \"./TextPosition.js\";\n\nexport class TextSpan {\n private _start: TextPosition;\n private _end: TextPosition;\n\n constructor(start: TextPosition, end: TextPosition) {\n if (start.isBefore(end)) {\n this._start = start;\n this._end = end;\n } else {\n this._start = end;\n this._end = start;\n }\n }\n\n static of(\n fromLine: number,\n fromColumn: number,\n toLine: number,\n toColumn: number\n ) {\n return new TextSpan(\n new TextPosition(fromLine, fromColumn),\n new TextPosition(toLine, toColumn)\n );\n }\n\n get start(): TextPosition {\n return this._start;\n }\n\n get end(): TextPosition {\n return this._end;\n }\n\n toString(): string {\n return this._start.toString() + \" - \" + this._end.toString();\n }\n\n public getCoveredText(input: string) {\n if (\n this._start.isFirstLine() &&\n this._end.isFirstLine() &&\n this.end.column <= input.length\n ) {\n return input.substr(this._start.column - 1, this._end.column - 1);\n }\n const lines = input.split(\"\\n\");\n if (lines.length > this._end.line) {\n // this is correct: _end.line is 1-based, so if there are 3 lines, length is 3 and the last TextPosition is line is line 3, col x.\n throw new Error(\n `Cannot compute covered text. End position ${this._end.toString()} is past the number of lines in the text (${\n lines.length\n })`\n );\n }\n if (\n lines.length == this.end.line &&\n lines[lines.length - 1].length > this._end.column\n ) {\n throw new Error(\n `Cannot compute covered text. End position ${this._end.toString()} is past the last position in the last column in the last line of the text (${\n lines.length\n }:${lines[lines.length - 1].length})`\n );\n }\n if (this._start.isAtSameLine(this._end)) {\n return lines[this.start.line - 1].substr(\n this._start.column - 1,\n this._end.column - 1\n );\n }\n let result = \"\";\n let copying = false;\n for (let line = this._start.line; line <= this.end.line; line++) {\n if (line === this._start.line) {\n result += lines[line - 1].substr(this.start.column - 1);\n copying = true;\n } else if (line === this._end.line) {\n result += lines[line - 1].substr(0, this.end.column - 1);\n return result;\n } else if (copying) {\n result += lines[line - 1];\n }\n }\n throw new Error(\n \"Cannot compute text coverage, this should not have happened. There is a bug in the sanity checks for the start and end positions.\"\n );\n }\n\n public underline(input: string, underlineChar: string = \"~\"): string {\n const lines = input.split(\"\\n\");\n if (lines.length < this._end.line) {\n // this is correct: _end.line is 1-based, so if there are 3 lines, length is 3 and the last TextPosition is line is line 3, col x.\n throw new Error(\n `Cannot compute covered text. End position ${this._end.toString()} is past the number of lines in the text (${\n lines.length\n })`\n );\n }\n if (\n lines.length == this.end.line &&\n lines[lines.length - 1].length + 1 < this._end.column\n ) {\n //tolerate a one-off error as the antlr4 syntax error is sometimes at index 0, sometimes at index [length].\n throw new Error(\n `Cannot compute covered text. End position ${this._end.toString()} is past the last position in the last column in the last line of the text (${\n lines.length\n }:${lines[lines.length - 1].length})`\n );\n }\n let result = [];\n let underlining = false;\n for (let line = 1; line <= lines.length; line++) {\n if (line === this._start.line && line === this._end.line) {\n result.push(\n ...this.underlineOneLine(\n lines[line - 1],\n underlineChar,\n this.start.column - 1,\n this._end.column - this._start.column + 1\n )\n );\n } else if (line === this._start.line) {\n result.push(\n ...this.underlineOneLine(\n lines[line - 1],\n underlineChar,\n this.start.column - 1\n )\n );\n underlining = true;\n } else if (line === this._end.line) {\n result.push(\n ...this.underlineOneLine(\n lines[line - 1],\n underlineChar,\n 0,\n this.end.column\n )\n );\n underlining = false;\n } else {\n if (underlining) {\n result.push(...this.underlineOneLine(lines[line - 1], underlineChar));\n } else {\n result.push(lines[line - 1]);\n }\n }\n }\n return result.join(\"\\n\");\n }\n\n private underlineOneLine(\n line: string,\n ulChar: string = \"~\",\n ulStart: number = 0,\n ulLength: number = line.length - ulStart\n ): Array<string> {\n if (ulChar.length != 1) {\n throw new Error(\n `Underline char must be a string of length 1, ${ulChar} does not qualify`\n );\n }\n if (ulLength <= 0) {\n ulLength = 1;\n }\n return [line, \" \".repeat(ulStart) + ulChar.repeat(ulLength)];\n }\n}\n"]}
|