ifc-expressions 2.1.1 → 2.2.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.
Files changed (205) hide show
  1. package/README.md +9 -1
  2. package/dist/cjs/E.js.map +1 -1
  3. package/dist/cjs/IfcExpression.js.map +1 -1
  4. package/dist/cjs/compiler/ExprCompiler.js.map +1 -1
  5. package/dist/cjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -1
  6. package/dist/cjs/error/MissingFunctionArgumentException.js.map +1 -1
  7. package/dist/cjs/error/SpuriousFunctionArgumentException.js.map +1 -1
  8. package/dist/cjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js.map +1 -1
  9. package/dist/cjs/error/value/DateFormatException.js +10 -0
  10. package/dist/cjs/error/value/DateFormatException.js.map +1 -0
  11. package/dist/cjs/expression/boolean/AndExpr.js.map +1 -1
  12. package/dist/cjs/expression/boolean/BinaryBooleanOpExpr.js.map +1 -1
  13. package/dist/cjs/expression/boolean/LogicalLiteralExpr.js.map +1 -1
  14. package/dist/cjs/expression/boolean/NotExpr.js.map +1 -1
  15. package/dist/cjs/expression/boolean/OrExpr.js.map +1 -1
  16. package/dist/cjs/expression/boolean/XorExpr.js.map +1 -1
  17. package/dist/cjs/expression/function/Func.js +2 -0
  18. package/dist/cjs/expression/function/Func.js.map +1 -1
  19. package/dist/cjs/expression/function/IfcExpressionFunctions.js +12 -0
  20. package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -1
  21. package/dist/cjs/expression/function/arg/FuncArgArray.js.map +1 -1
  22. package/dist/cjs/expression/function/arg/FuncArgBase.js +9 -2
  23. package/dist/cjs/expression/function/arg/FuncArgBase.js.map +1 -1
  24. package/dist/cjs/expression/function/arg/FuncArgIfcDateString.js +34 -0
  25. package/dist/cjs/expression/function/arg/FuncArgIfcDateString.js.map +1 -0
  26. package/dist/cjs/expression/function/arg/FuncArgIfcDateTime.js +27 -0
  27. package/dist/cjs/expression/function/arg/FuncArgIfcDateTime.js.map +1 -0
  28. package/dist/cjs/expression/function/arg/FuncArgIfcDateTimeString.js +35 -0
  29. package/dist/cjs/expression/function/arg/FuncArgIfcDateTimeString.js.map +1 -0
  30. package/dist/cjs/expression/function/arg/FuncArgIfcDuration.js +27 -0
  31. package/dist/cjs/expression/function/arg/FuncArgIfcDuration.js.map +1 -0
  32. package/dist/cjs/expression/function/arg/FuncArgIfcDurationString.js +30 -0
  33. package/dist/cjs/expression/function/arg/FuncArgIfcDurationString.js.map +1 -0
  34. package/dist/cjs/expression/function/arg/FuncArgIfcTimeStamp.js +27 -0
  35. package/dist/cjs/expression/function/arg/FuncArgIfcTimeStamp.js.map +1 -0
  36. package/dist/cjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js +28 -0
  37. package/dist/cjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js.map +1 -0
  38. package/dist/cjs/expression/function/arg/FuncArgIfcTimeString.js +34 -0
  39. package/dist/cjs/expression/function/arg/FuncArgIfcTimeString.js.map +1 -0
  40. package/dist/cjs/expression/function/arg/FuncArgLogicalOrBoolean.js.map +1 -1
  41. package/dist/cjs/expression/function/arg/FuncArgRegexFlag.js.map +1 -1
  42. package/dist/cjs/expression/function/arg/FuncArgUnion.js +32 -0
  43. package/dist/cjs/expression/function/arg/FuncArgUnion.js.map +1 -0
  44. package/dist/cjs/expression/function/impl/ADDDURATION.js +53 -0
  45. package/dist/cjs/expression/function/impl/ADDDURATION.js.map +1 -0
  46. package/dist/cjs/expression/function/impl/AT.js.map +1 -1
  47. package/dist/cjs/expression/function/impl/ApplyRegex.js.map +1 -1
  48. package/dist/cjs/expression/function/impl/FuncBooleanBinary.js.map +1 -1
  49. package/dist/cjs/expression/function/impl/IF.js.map +1 -1
  50. package/dist/cjs/expression/function/impl/NOT.js.map +1 -1
  51. package/dist/cjs/expression/function/impl/ReplacePattern.js.map +1 -1
  52. package/dist/cjs/expression/function/impl/SPLIT.js.map +1 -1
  53. package/dist/cjs/expression/function/impl/SUBSTRING.js.map +1 -1
  54. package/dist/cjs/expression/function/impl/TOBOOLEAN.js +0 -1
  55. package/dist/cjs/expression/function/impl/TOBOOLEAN.js.map +1 -1
  56. package/dist/cjs/expression/function/impl/TOIFCDATE.js +33 -0
  57. package/dist/cjs/expression/function/impl/TOIFCDATE.js.map +1 -0
  58. package/dist/cjs/expression/function/impl/TOIFCDATETIME.js +36 -0
  59. package/dist/cjs/expression/function/impl/TOIFCDATETIME.js.map +1 -0
  60. package/dist/cjs/expression/function/impl/TOIFCDURATION.js +21 -0
  61. package/dist/cjs/expression/function/impl/TOIFCDURATION.js.map +1 -0
  62. package/dist/cjs/expression/function/impl/TOIFCTIME.js +33 -0
  63. package/dist/cjs/expression/function/impl/TOIFCTIME.js.map +1 -0
  64. package/dist/cjs/expression/function/impl/TOIFCTIMESTAMP.js +36 -0
  65. package/dist/cjs/expression/function/impl/TOIFCTIMESTAMP.js.map +1 -0
  66. package/dist/cjs/expression/function/impl/TOLOGICAL.js.map +1 -1
  67. package/dist/cjs/expression/function/impl/TONUMERIC.js +0 -1
  68. package/dist/cjs/expression/function/impl/TONUMERIC.js.map +1 -1
  69. package/dist/cjs/type/Types.js +35 -0
  70. package/dist/cjs/type/Types.js.map +1 -1
  71. package/dist/cjs/util/TextSpan.js +0 -1
  72. package/dist/cjs/util/TextSpan.js.map +1 -1
  73. package/dist/cjs/value/BooleanValue.js.map +1 -1
  74. package/dist/cjs/value/ExpressionValue.js.map +1 -1
  75. package/dist/cjs/value/IfcDateTimeValue.js +194 -0
  76. package/dist/cjs/value/IfcDateTimeValue.js.map +1 -0
  77. package/dist/cjs/value/IfcDateValue.js +68 -0
  78. package/dist/cjs/value/IfcDateValue.js.map +1 -0
  79. package/dist/cjs/value/IfcDurationValue.js +149 -0
  80. package/dist/cjs/value/IfcDurationValue.js.map +1 -0
  81. package/dist/cjs/value/IfcTimeStampValue.js +62 -0
  82. package/dist/cjs/value/IfcTimeStampValue.js.map +1 -0
  83. package/dist/cjs/value/IfcTimeValue.js +93 -0
  84. package/dist/cjs/value/IfcTimeValue.js.map +1 -0
  85. package/dist/cjs/value/LogicalValue.js.map +1 -1
  86. package/dist/cjs/value/NonBoxedValueTypes.js +3 -0
  87. package/dist/cjs/value/NonBoxedValueTypes.js.map +1 -0
  88. package/dist/cjs/value/Value.js.map +1 -1
  89. package/dist/error/value/DateFormatException.d.ts +3 -0
  90. package/dist/expression/function/Func.d.ts +3 -0
  91. package/dist/expression/function/arg/FuncArgBase.d.ts +1 -0
  92. package/dist/expression/function/arg/FuncArgIfcDateString.d.ts +11 -0
  93. package/dist/expression/function/arg/FuncArgIfcDateTime.d.ts +11 -0
  94. package/dist/expression/function/arg/FuncArgIfcDateTimeString.d.ts +11 -0
  95. package/dist/expression/function/arg/FuncArgIfcDuration.d.ts +11 -0
  96. package/dist/expression/function/arg/FuncArgIfcDurationString.d.ts +11 -0
  97. package/dist/expression/function/arg/FuncArgIfcTimeStamp.d.ts +11 -0
  98. package/dist/expression/function/arg/FuncArgIfcTimeStampNumeric.d.ts +11 -0
  99. package/dist/expression/function/arg/FuncArgIfcTimeString.d.ts +11 -0
  100. package/dist/expression/function/arg/FuncArgUnion.d.ts +14 -0
  101. package/dist/expression/function/impl/ADDDURATION.d.ts +10 -0
  102. package/dist/expression/function/impl/TOBOOLEAN.d.ts +0 -1
  103. package/dist/expression/function/impl/TOIFCDATE.d.ts +10 -0
  104. package/dist/expression/function/impl/TOIFCDATETIME.d.ts +10 -0
  105. package/dist/expression/function/impl/TOIFCDURATION.d.ts +10 -0
  106. package/dist/expression/function/impl/TOIFCTIME.d.ts +10 -0
  107. package/dist/expression/function/impl/TOIFCTIMESTAMP.d.ts +10 -0
  108. package/dist/expression/function/impl/TONUMERIC.d.ts +0 -1
  109. package/dist/mjs/E.js.map +1 -1
  110. package/dist/mjs/IfcExpression.js.map +1 -1
  111. package/dist/mjs/compiler/ExprCompiler.js.map +1 -1
  112. package/dist/mjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -1
  113. package/dist/mjs/error/MissingFunctionArgumentException.js.map +1 -1
  114. package/dist/mjs/error/SpuriousFunctionArgumentException.js.map +1 -1
  115. package/dist/mjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js.map +1 -1
  116. package/dist/mjs/error/value/DateFormatException.js +6 -0
  117. package/dist/mjs/error/value/DateFormatException.js.map +1 -0
  118. package/dist/mjs/expression/boolean/AndExpr.js.map +1 -1
  119. package/dist/mjs/expression/boolean/BinaryBooleanOpExpr.js.map +1 -1
  120. package/dist/mjs/expression/boolean/LogicalLiteralExpr.js.map +1 -1
  121. package/dist/mjs/expression/boolean/NotExpr.js.map +1 -1
  122. package/dist/mjs/expression/boolean/OrExpr.js.map +1 -1
  123. package/dist/mjs/expression/boolean/XorExpr.js.map +1 -1
  124. package/dist/mjs/expression/function/Func.js +2 -0
  125. package/dist/mjs/expression/function/Func.js.map +1 -1
  126. package/dist/mjs/expression/function/IfcExpressionFunctions.js +12 -0
  127. package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -1
  128. package/dist/mjs/expression/function/arg/FuncArgArray.js.map +1 -1
  129. package/dist/mjs/expression/function/arg/FuncArgBase.js +10 -3
  130. package/dist/mjs/expression/function/arg/FuncArgBase.js.map +1 -1
  131. package/dist/mjs/expression/function/arg/FuncArgIfcDateString.js +30 -0
  132. package/dist/mjs/expression/function/arg/FuncArgIfcDateString.js.map +1 -0
  133. package/dist/mjs/expression/function/arg/FuncArgIfcDateTime.js +23 -0
  134. package/dist/mjs/expression/function/arg/FuncArgIfcDateTime.js.map +1 -0
  135. package/dist/mjs/expression/function/arg/FuncArgIfcDateTimeString.js +31 -0
  136. package/dist/mjs/expression/function/arg/FuncArgIfcDateTimeString.js.map +1 -0
  137. package/dist/mjs/expression/function/arg/FuncArgIfcDuration.js +23 -0
  138. package/dist/mjs/expression/function/arg/FuncArgIfcDuration.js.map +1 -0
  139. package/dist/mjs/expression/function/arg/FuncArgIfcDurationString.js +26 -0
  140. package/dist/mjs/expression/function/arg/FuncArgIfcDurationString.js.map +1 -0
  141. package/dist/mjs/expression/function/arg/FuncArgIfcTimeStamp.js +23 -0
  142. package/dist/mjs/expression/function/arg/FuncArgIfcTimeStamp.js.map +1 -0
  143. package/dist/mjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js +24 -0
  144. package/dist/mjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js.map +1 -0
  145. package/dist/mjs/expression/function/arg/FuncArgIfcTimeString.js +30 -0
  146. package/dist/mjs/expression/function/arg/FuncArgIfcTimeString.js.map +1 -0
  147. package/dist/mjs/expression/function/arg/FuncArgLogicalOrBoolean.js.map +1 -1
  148. package/dist/mjs/expression/function/arg/FuncArgRegexFlag.js.map +1 -1
  149. package/dist/mjs/expression/function/arg/FuncArgUnion.js +28 -0
  150. package/dist/mjs/expression/function/arg/FuncArgUnion.js.map +1 -0
  151. package/dist/mjs/expression/function/impl/ADDDURATION.js +49 -0
  152. package/dist/mjs/expression/function/impl/ADDDURATION.js.map +1 -0
  153. package/dist/mjs/expression/function/impl/AT.js.map +1 -1
  154. package/dist/mjs/expression/function/impl/ApplyRegex.js.map +1 -1
  155. package/dist/mjs/expression/function/impl/FuncBooleanBinary.js.map +1 -1
  156. package/dist/mjs/expression/function/impl/IF.js.map +1 -1
  157. package/dist/mjs/expression/function/impl/NOT.js.map +1 -1
  158. package/dist/mjs/expression/function/impl/ReplacePattern.js.map +1 -1
  159. package/dist/mjs/expression/function/impl/SPLIT.js.map +1 -1
  160. package/dist/mjs/expression/function/impl/SUBSTRING.js.map +1 -1
  161. package/dist/mjs/expression/function/impl/TOBOOLEAN.js +0 -1
  162. package/dist/mjs/expression/function/impl/TOBOOLEAN.js.map +1 -1
  163. package/dist/mjs/expression/function/impl/TOIFCDATE.js +29 -0
  164. package/dist/mjs/expression/function/impl/TOIFCDATE.js.map +1 -0
  165. package/dist/mjs/expression/function/impl/TOIFCDATETIME.js +32 -0
  166. package/dist/mjs/expression/function/impl/TOIFCDATETIME.js.map +1 -0
  167. package/dist/mjs/expression/function/impl/TOIFCDURATION.js +17 -0
  168. package/dist/mjs/expression/function/impl/TOIFCDURATION.js.map +1 -0
  169. package/dist/mjs/expression/function/impl/TOIFCTIME.js +29 -0
  170. package/dist/mjs/expression/function/impl/TOIFCTIME.js.map +1 -0
  171. package/dist/mjs/expression/function/impl/TOIFCTIMESTAMP.js +32 -0
  172. package/dist/mjs/expression/function/impl/TOIFCTIMESTAMP.js.map +1 -0
  173. package/dist/mjs/expression/function/impl/TOLOGICAL.js.map +1 -1
  174. package/dist/mjs/expression/function/impl/TONUMERIC.js +0 -1
  175. package/dist/mjs/expression/function/impl/TONUMERIC.js.map +1 -1
  176. package/dist/mjs/type/Types.js +35 -0
  177. package/dist/mjs/type/Types.js.map +1 -1
  178. package/dist/mjs/util/TextSpan.js +0 -1
  179. package/dist/mjs/util/TextSpan.js.map +1 -1
  180. package/dist/mjs/value/BooleanValue.js.map +1 -1
  181. package/dist/mjs/value/ExpressionValue.js.map +1 -1
  182. package/dist/mjs/value/IfcDateTimeValue.js +186 -0
  183. package/dist/mjs/value/IfcDateTimeValue.js.map +1 -0
  184. package/dist/mjs/value/IfcDateValue.js +64 -0
  185. package/dist/mjs/value/IfcDateValue.js.map +1 -0
  186. package/dist/mjs/value/IfcDurationValue.js +142 -0
  187. package/dist/mjs/value/IfcDurationValue.js.map +1 -0
  188. package/dist/mjs/value/IfcTimeStampValue.js +58 -0
  189. package/dist/mjs/value/IfcTimeStampValue.js.map +1 -0
  190. package/dist/mjs/value/IfcTimeValue.js +86 -0
  191. package/dist/mjs/value/IfcTimeValue.js.map +1 -0
  192. package/dist/mjs/value/LogicalValue.js.map +1 -1
  193. package/dist/mjs/value/NonBoxedValueTypes.js +2 -0
  194. package/dist/mjs/value/NonBoxedValueTypes.js.map +1 -0
  195. package/dist/mjs/value/Value.js.map +1 -1
  196. package/dist/type/Types.d.ts +15 -0
  197. package/dist/value/ExpressionValue.d.ts +6 -1
  198. package/dist/value/IfcDateTimeValue.d.ts +44 -0
  199. package/dist/value/IfcDateValue.d.ts +24 -0
  200. package/dist/value/IfcDurationValue.d.ts +53 -0
  201. package/dist/value/IfcTimeStampValue.d.ts +18 -0
  202. package/dist/value/IfcTimeValue.d.ts +27 -0
  203. package/dist/value/NonBoxedValueTypes.d.ts +6 -0
  204. package/dist/value/Value.d.ts +2 -1
  205. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ import { StringValue } from "../../../value/StringValue.js";
2
+ import { ExprEvalTypeErrorObj, isExprEvalError, } from "../../ExprEvalResult.js";
3
+ import { ExprKind } from "../../ExprKind.js";
4
+ import { Type, Types } from "../../../type/Types.js";
5
+ import { IfcDateTimeValue } from "../../../value/IfcDateTimeValue.js";
6
+ import { FuncArgBase } from "./FuncArgBase.js";
7
+ export class FuncArgIfcDateTimeString extends FuncArgBase {
8
+ constructor(required, name, defaultValue) {
9
+ super(required, name, defaultValue);
10
+ }
11
+ getType() {
12
+ return Types.or(Type.STRING);
13
+ }
14
+ transformForTypeCheck(callingExpr, invocationValue) {
15
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
16
+ if (isExprEvalError(val)) {
17
+ return val;
18
+ }
19
+ const result = val.result;
20
+ if (result instanceof StringValue) {
21
+ const stringValue = result.getValue();
22
+ if (!IfcDateTimeValue.isValidStringRepresentation(stringValue)) {
23
+ return new ExprEvalTypeErrorObj(ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is an IfcDateTime of the form 'YYYY-MM-DDTHH:MM:SS.sss...', ` +
24
+ `a leading + or - and a trailing time zone specification are allowed.` +
25
+ `The provided value, '${stringValue}' is not allowed. `, callingExpr.getTextSpan());
26
+ }
27
+ return val;
28
+ }
29
+ }
30
+ }
31
+ //# sourceMappingURL=FuncArgIfcDateTimeString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["expression/function/arg/FuncArgIfcDateTimeString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAGL,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,wBAAyB,SAAQ,WAAwB;IACpE,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,WAAW,EAAE;YACjC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAY,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;gBAC9D,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,+DAA+D;oBAClF,sEAAsE;oBACtE,wBAAwB,WAAW,oBAAoB,EACzD,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;aACH;YACD,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF","file":"expression/function/arg/FuncArgIfcDateTimeString.js","sourcesContent":["import { StringValue } from \"../../../value/StringValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n isExprEvalError,\n} from \"../../ExprEvalResult.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { IfcDateTimeValue } from \"../../../value/IfcDateTimeValue.js\";\nimport { FuncArgBase } from \"./FuncArgBase.js\";\n\nexport class FuncArgIfcDateTimeString extends FuncArgBase<StringValue> {\n constructor(required: boolean, name: string, defaultValue?: StringValue) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Types.or(Type.STRING);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = super.transformForTypeCheck(callingExpr, invocationValue);\n if (isExprEvalError(val)) {\n return val;\n }\n const result = val.result;\n if (result instanceof StringValue) {\n const stringValue = result.getValue() as string;\n if (!IfcDateTimeValue.isValidStringRepresentation(stringValue)) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} is an IfcDateTime of the form 'YYYY-MM-DDTHH:MM:SS.sss...', ` +\n `a leading + or - and a trailing time zone specification are allowed.` +\n `The provided value, '${stringValue}' is not allowed. `,\n callingExpr.getTextSpan()\n );\n }\n return val;\n }\n }\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import { isExprEvalError, } from "../../ExprEvalResult.js";
2
+ import { Type, Types } from "../../../type/Types.js";
3
+ import { IfcDurationValue } from "../../../value/IfcDurationValue.js";
4
+ import { FuncArgBase } from "./FuncArgBase.js";
5
+ export class FuncArgIfcDuration extends FuncArgBase {
6
+ constructor(required, name, defaultValue) {
7
+ super(required, name, defaultValue);
8
+ }
9
+ getType() {
10
+ return Types.or(Type.IFC_DURATION);
11
+ }
12
+ transformForTypeCheck(callingExpr, invocationValue) {
13
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
14
+ if (isExprEvalError(val)) {
15
+ return val;
16
+ }
17
+ const result = val.result;
18
+ if (result instanceof IfcDurationValue) {
19
+ return val;
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=FuncArgIfcDuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["expression/function/arg/FuncArgIfcDuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,kBAAmB,SAAQ,WAA6B;IACnE,YACE,QAAiB,EACjB,IAAY,EACZ,YAA+B;QAE/B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,gBAAgB,EAAE;YACtC,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF","file":"expression/function/arg/FuncArgIfcDuration.js","sourcesContent":["import {\n ExprEvalResult,\n ExprEvalSuccess,\n isExprEvalError,\n} from \"../../ExprEvalResult.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { IfcDurationValue } from \"../../../value/IfcDurationValue.js\";\nimport { FuncArgBase } from \"./FuncArgBase.js\";\n\nexport class FuncArgIfcDuration extends FuncArgBase<IfcDurationValue> {\n constructor(\n required: boolean,\n name: string,\n defaultValue?: IfcDurationValue\n ) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Types.or(Type.IFC_DURATION);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = super.transformForTypeCheck(callingExpr, invocationValue);\n if (isExprEvalError(val)) {\n return val;\n }\n const result = val.result;\n if (result instanceof IfcDurationValue) {\n return val;\n }\n }\n}\n"]}
@@ -0,0 +1,26 @@
1
+ import { FuncArgString } from "./FuncArgString.js";
2
+ import { ExprEvalTypeErrorObj, isExprEvalError, } from "../../ExprEvalResult.js";
3
+ import { ExprKind } from "../../ExprKind.js";
4
+ import { Type } from "../../../type/Types.js";
5
+ import { IfcDurationValue } from "../../../value/IfcDurationValue.js";
6
+ export class FuncArgIfcDurationString extends FuncArgString {
7
+ constructor(required, name, defaultValue) {
8
+ super(required, name, defaultValue);
9
+ }
10
+ getType() {
11
+ return Type.STRING;
12
+ }
13
+ transformForTypeCheck(callingExpr, invocationValue) {
14
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
15
+ if (isExprEvalError(val)) {
16
+ return val;
17
+ }
18
+ const stringValue = val.result.getValue();
19
+ if (!IfcDurationValue.isValidStringRepresentation(stringValue)) {
20
+ return new ExprEvalTypeErrorObj(ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is an IfcDate of the form 'YYYY-MM-DD'.` +
21
+ `The provided value, '${stringValue}' is not allowed. `, callingExpr.getTextSpan());
22
+ }
23
+ return val;
24
+ }
25
+ }
26
+ //# sourceMappingURL=FuncArgIfcDurationString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["expression/function/arg/FuncArgIfcDurationString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAGL,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACzD,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;YAC9D,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,0CAA0C;gBAC7D,wBAAwB,WAAW,oBAAoB,EACzD,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF","file":"expression/function/arg/FuncArgIfcDurationString.js","sourcesContent":["import { FuncArgString } from \"./FuncArgString.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n isExprEvalError,\n} from \"../../ExprEvalResult.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type } from \"../../../type/Types.js\";\nimport { IfcDurationValue } from \"../../../value/IfcDurationValue.js\";\n\nexport class FuncArgIfcDurationString extends FuncArgString {\n constructor(required: boolean, name: string, defaultValue?: StringValue) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Type.STRING;\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = super.transformForTypeCheck(callingExpr, invocationValue);\n if (isExprEvalError(val)) {\n return val;\n }\n const stringValue = val.result.getValue() as string;\n if (!IfcDurationValue.isValidStringRepresentation(stringValue)) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} is an IfcDate of the form 'YYYY-MM-DD'.` +\n `The provided value, '${stringValue}' is not allowed. `,\n callingExpr.getTextSpan()\n );\n }\n return val;\n }\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import { isExprEvalError, } from "../../ExprEvalResult.js";
2
+ import { Type, Types } from "../../../type/Types.js";
3
+ import { IfcTimeStampValue } from "../../../value/IfcTimeStampValue.js";
4
+ import { FuncArgBase } from "./FuncArgBase.js";
5
+ export class FuncArgIfcTimeStamp extends FuncArgBase {
6
+ constructor(required, name, defaultValue) {
7
+ super(required, name, defaultValue);
8
+ }
9
+ getType() {
10
+ return Types.or(Type.IFC_TIME_STAMP);
11
+ }
12
+ transformForTypeCheck(callingExpr, invocationValue) {
13
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
14
+ if (isExprEvalError(val)) {
15
+ return val;
16
+ }
17
+ const result = val.result;
18
+ if (result instanceof IfcTimeStampValue) {
19
+ return val;
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=FuncArgIfcTimeStamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["expression/function/arg/FuncArgIfcTimeStamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,mBAAoB,SAAQ,WAA8B;IACrE,YACE,QAAiB,EACjB,IAAY,EACZ,YAAgC;QAEhC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,iBAAiB,EAAE;YACvC,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF","file":"expression/function/arg/FuncArgIfcTimeStamp.js","sourcesContent":["import {\n ExprEvalResult,\n ExprEvalSuccess,\n isExprEvalError,\n} from \"../../ExprEvalResult.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { IfcTimeStampValue } from \"../../../value/IfcTimeStampValue.js\";\nimport { FuncArgBase } from \"./FuncArgBase.js\";\n\nexport class FuncArgIfcTimeStamp extends FuncArgBase<IfcTimeStampValue> {\n constructor(\n required: boolean,\n name: string,\n defaultValue?: IfcTimeStampValue\n ) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Types.or(Type.IFC_TIME_STAMP);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = super.transformForTypeCheck(callingExpr, invocationValue);\n if (isExprEvalError(val)) {\n return val;\n }\n const result = val.result;\n if (result instanceof IfcTimeStampValue) {\n return val;\n }\n }\n}\n"]}
@@ -0,0 +1,24 @@
1
+ import { ExprEvalTypeErrorObj, } from "../../ExprEvalResult.js";
2
+ import { ExprKind } from "../../ExprKind.js";
3
+ import { FuncArgNumeric } from "./FuncArgNumeric.js";
4
+ import { NumericValue } from "../../../value/NumericValue.js";
5
+ import { Type, Types } from "../../../type/Types.js";
6
+ export class FuncArgIfcTimeStampNumeric extends FuncArgNumeric {
7
+ constructor(required, name, defaultValue) {
8
+ super(required, name, defaultValue);
9
+ }
10
+ getType() {
11
+ return Types.or(Type.NUMERIC);
12
+ }
13
+ transformForTypeCheck(callingExpr, invocationValue) {
14
+ const result = invocationValue.result;
15
+ if (result instanceof NumericValue) {
16
+ const value = result.getValue();
17
+ if (value.isInteger()) {
18
+ return invocationValue;
19
+ }
20
+ }
21
+ return new ExprEvalTypeErrorObj(ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} must be an integer or an IfcDateTimeValue, but was ${JSON.stringify(result.getValue())}`, result.getValue(), callingExpr.getTextSpan());
22
+ }
23
+ }
24
+ //# sourceMappingURL=FuncArgIfcTimeStampNumeric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["expression/function/arg/FuncArgIfcTimeStampNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,OAAO,0BAA2B,SAAQ,cAAc;IAC5D,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA2B;QACtE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,IAAI,MAAM,YAAY,YAAY,EAAE;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAa,CAAC;YAC3C,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACrB,OAAO,eAAe,CAAC;aACxB;SACF;QACD,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YACE,IAAI,CAAC,IACP,uDAAuD,IAAI,CAAC,SAAS,CACnE,MAAM,CAAC,QAAQ,EAAE,CAClB,EAAE,EACH,MAAM,CAAC,QAAQ,EAAE,EACjB,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;IACJ,CAAC;CACF","file":"expression/function/arg/FuncArgIfcTimeStampNumeric.js","sourcesContent":["import {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { FuncArgNumeric } from \"./FuncArgNumeric.js\";\nimport { NumericValue } from \"../../../value/NumericValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { Decimal } from \"decimal.js\";\n\nexport class FuncArgIfcTimeStampNumeric extends FuncArgNumeric {\n constructor(required: boolean, name: string, defaultValue?: NumericValue) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Types.or(Type.NUMERIC);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const result = invocationValue.result;\n if (result instanceof NumericValue) {\n const value = result.getValue() as Decimal;\n if (value.isInteger()) {\n return invocationValue;\n }\n }\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${\n this.name\n } must be an integer or an IfcDateTimeValue, but was ${JSON.stringify(\n result.getValue()\n )}`,\n result.getValue(),\n callingExpr.getTextSpan()\n );\n }\n}\n"]}
@@ -0,0 +1,30 @@
1
+ import { StringValue } from "../../../value/StringValue.js";
2
+ import { ExprEvalTypeErrorObj, isExprEvalError, } from "../../ExprEvalResult.js";
3
+ import { ExprKind } from "../../ExprKind.js";
4
+ import { Type, Types } from "../../../type/Types.js";
5
+ import { IfcTimeValue } from "../../../value/IfcTimeValue.js";
6
+ import { FuncArgBase } from "./FuncArgBase.js";
7
+ export class FuncArgIfcTimeString extends FuncArgBase {
8
+ constructor(required, name, defaultValue) {
9
+ super(required, name, defaultValue);
10
+ }
11
+ getType() {
12
+ return Types.or(Type.STRING);
13
+ }
14
+ transformForTypeCheck(callingExpr, invocationValue) {
15
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
16
+ if (isExprEvalError(val)) {
17
+ return val;
18
+ }
19
+ if (val.result instanceof StringValue) {
20
+ const stringValue = val.result.getValue();
21
+ if (!IfcTimeValue.isValidStringRepresentation(stringValue)) {
22
+ return new ExprEvalTypeErrorObj(ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is an IfcTime of the form 'HH:MM:SS.sss...'.` +
23
+ `a trailing time zone specification is allowed.` +
24
+ `The provided value, '${stringValue}' is not allowed. `, callingExpr.getTextSpan());
25
+ }
26
+ return val;
27
+ }
28
+ }
29
+ }
30
+ //# sourceMappingURL=FuncArgIfcTimeString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["expression/function/arg/FuncArgIfcTimeString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAGL,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,oBAAqB,SAAQ,WAAwB;IAChE,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,GAAG,CAAC,MAAM,YAAY,WAAW,EAAE;YACrC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;gBAC1D,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,+CAA+C;oBAClE,gDAAgD;oBAChD,wBAAwB,WAAW,oBAAoB,EACzD,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;aACH;YACD,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF","file":"expression/function/arg/FuncArgIfcTimeString.js","sourcesContent":["import { StringValue } from \"../../../value/StringValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n isExprEvalError,\n} from \"../../ExprEvalResult.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { IfcTimeValue } from \"../../../value/IfcTimeValue.js\";\nimport { FuncArgBase } from \"./FuncArgBase.js\";\n\nexport class FuncArgIfcTimeString extends FuncArgBase<StringValue> {\n constructor(required: boolean, name: string, defaultValue?: StringValue) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Types.or(Type.STRING);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = super.transformForTypeCheck(callingExpr, invocationValue);\n if (isExprEvalError(val)) {\n return val;\n }\n if (val.result instanceof StringValue) {\n const stringValue = val.result.getValue() as string;\n if (!IfcTimeValue.isValidStringRepresentation(stringValue)) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} is an IfcTime of the form 'HH:MM:SS.sss...'.` +\n `a trailing time zone specification is allowed.` +\n `The provided value, '${stringValue}' is not allowed. `,\n callingExpr.getTextSpan()\n );\n }\n return val;\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["expression/function/arg/FuncArgLogicalOrBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAGL,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,OAAO,uBAAwB,SAAQ,WAE5C;IACC,YACE,QAAiB,EACjB,IAAY,EACZ,YAA0C;QAE1C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACjC,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YACE,IAAI,CAAC,IACP,0CAA0C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EACjE,KAAK,EACL,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;IACJ,CAAC;CACF","file":"expression/function/arg/FuncArgLogicalOrBoolean.js","sourcesContent":["import { FuncArgBase } from \"./FuncArgBase.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\n\nexport class FuncArgLogicalOrBoolean extends FuncArgBase<\n BooleanValue | LogicalValue\n> {\n constructor(\n required: boolean,\n name: string,\n defaultValue?: BooleanValue | LogicalValue\n ) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Types.or(Type.BOOLEAN, Type.LOGICAL);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const result = invocationValue.result;\n const value = result.getValue();\n if (LogicalValue.isLogical(value)) {\n return invocationValue;\n }\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${\n this.name\n } must be a boolean or logical, but was ${JSON.stringify(value)}`,\n value,\n callingExpr.getTextSpan()\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["expression/function/arg/FuncArgLogicalOrBoolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAGL,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,OAAO,uBAAwB,SAAQ,WAE5C;IACC,YACE,QAAiB,EACjB,IAAY,EACZ,YAA0C;QAE1C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACjC,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YACE,IAAI,CAAC,IACP,0CAA0C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EACjE,KAAK,EACL,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;IACJ,CAAC;CACF","file":"expression/function/arg/FuncArgLogicalOrBoolean.js","sourcesContent":["import { FuncArgBase } from \"./FuncArgBase.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n} from \"../../ExprEvalResult.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\n\nexport class FuncArgLogicalOrBoolean extends FuncArgBase<\n BooleanValue | LogicalValue\n> {\n constructor(\n required: boolean,\n name: string,\n defaultValue?: BooleanValue | LogicalValue\n ) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Types.or(Type.BOOLEAN, Type.LOGICAL);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const result = invocationValue.result;\n const value = result.getValue();\n if (LogicalValue.isLogical(value)) {\n return invocationValue;\n }\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${\n this.name\n } must be a boolean or logical, but was ${JSON.stringify(value)}`,\n value,\n callingExpr.getTextSpan()\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["expression/function/arg/FuncArgRegexFlag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAGL,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,QAAiB,EAAE,IAAY,EAAE,YAAyB;QACpE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;QACpD,IACE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,0BAA0B;YACxE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EACpD;YACA,4BAA4B,CAAC,OAAO,IAAI,oBAAoB,CAC1D,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,8DAA8D;gBACjF,8EAA8E;gBAC9E,oEAAoE,WAAW,oBAAoB;gBACnG,oCAAoC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EACrE,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF","file":"expression/function/arg/FuncArgRegexFlag.js","sourcesContent":["import { FuncArgString } from \"./FuncArgString\";\nimport { StringValue } from \"../../../value/StringValue\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n isExprEvalError,\n} from \"../../ExprEvalResult\";\nimport { FunctionExpr } from \"../FunctionExpr\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue\";\nimport { ExprKind } from \"../../ExprKind\";\nimport { isNullish } from \"../../../util/IfcExpressionUtils\";\n\nexport class FuncArgRegexFlag extends FuncArgString {\n constructor(required: boolean, name: string, defaultValue: StringValue) {\n super(required, name, defaultValue);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = super.transformForTypeCheck(callingExpr, invocationValue);\n if (isExprEvalError(val)) {\n return val;\n }\n const stringValue = val.result.getValue() as string;\n if (\n isNullish(stringValue.match(/^[imguv]*$/)) || // allowed flags not found\n !isNullish(stringValue.match(/^.*([imguv]).*\\1.*$/))\n ) {\n /* duplicated flags found */ return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} is a possibly empty collection of 'flags' for a javascript ` +\n `regular expression. Order does not matter, duplicate flags are not allowed. ` +\n `The flags are: 'g','i','m','s','u' and 'v'. The provided value, '${stringValue}' is not allowed. ` +\n `By the way the default value is '${this.defaultValue.getValue()}'`,\n callingExpr.getTextSpan()\n );\n }\n return val;\n }\n}\n"]}
1
+ {"version":3,"sources":["expression/function/arg/FuncArgRegexFlag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAGL,oBAAoB,EACpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,QAAiB,EAAE,IAAY,EAAE,YAAyB;QACpE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;QACpD,IACE,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,0BAA0B;YACxE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EACpD;YACA,4BAA4B,CAAC,OAAO,IAAI,oBAAoB,CAC1D,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,8DAA8D;gBACjF,8EAA8E;gBAC9E,oEAAoE,WAAW,oBAAoB;gBACnG,oCAAoC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EACrE,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF","file":"expression/function/arg/FuncArgRegexFlag.js","sourcesContent":["import { FuncArgString } from \"./FuncArgString.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport {\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n isExprEvalError,\n} from \"../../ExprEvalResult.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { isNullish } from \"../../../util/IfcExpressionUtils.js\";\n\nexport class FuncArgRegexFlag extends FuncArgString {\n constructor(required: boolean, name: string, defaultValue: StringValue) {\n super(required, name, defaultValue);\n }\n\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = super.transformForTypeCheck(callingExpr, invocationValue);\n if (isExprEvalError(val)) {\n return val;\n }\n const stringValue = val.result.getValue() as string;\n if (\n isNullish(stringValue.match(/^[imguv]*$/)) || // allowed flags not found\n !isNullish(stringValue.match(/^.*([imguv]).*\\1.*$/))\n ) {\n /* duplicated flags found */ return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} is a possibly empty collection of 'flags' for a javascript ` +\n `regular expression. Order does not matter, duplicate flags are not allowed. ` +\n `The flags are: 'g','i','m','s','u' and 'v'. The provided value, '${stringValue}' is not allowed. ` +\n `By the way the default value is '${this.defaultValue.getValue()}'`,\n callingExpr.getTextSpan()\n );\n }\n return val;\n }\n}\n"]}
@@ -0,0 +1,28 @@
1
+ import { FuncArg } from "../FuncArg.js";
2
+ import { ExprEvalTypeErrorObj, isExprEvalSuccess, } from "../../ExprEvalResult.js";
3
+ import { ExprKind } from "../../ExprKind.js";
4
+ import { isNullish } from "../../../IfcExpression.js";
5
+ import { Types } from "../../../type/Types.js";
6
+ export class FuncArgUnion extends FuncArg {
7
+ constructor(...options) {
8
+ super(options[0].required, options[0].name, options[0].defaultValue);
9
+ this.options = options;
10
+ }
11
+ static of(required, name, constructors) {
12
+ return new FuncArgUnion(...constructors.map((c) => new c(required, name)));
13
+ }
14
+ transformValue(callingExpr, invocationValue) {
15
+ const successResults = this.options
16
+ .map((o) => o.transformValue(callingExpr, invocationValue))
17
+ .filter((r) => !isNullish(r))
18
+ .filter((r) => isExprEvalSuccess(r));
19
+ if (successResults.length === 0) {
20
+ return new ExprEvalTypeErrorObj(ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is must be one of ${this.options}. The provided value, '${invocationValue}' is not allowed. `, callingExpr.getTextSpan());
21
+ }
22
+ return successResults[0];
23
+ }
24
+ getType() {
25
+ return Types.or(...this.options.map((o) => o.getType()));
26
+ }
27
+ }
28
+ //# sourceMappingURL=FuncArgUnion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["expression/function/arg/FuncArgUnion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAEL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAM/C,MAAM,OAAO,YAAgB,SAAQ,OAAU;IAG7C,YAAY,GAAG,OAAqB;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,EAAE,CACd,QAAiB,EACjB,IAAY,EACZ,YAAiB;QAEjB,OAAO,IAAI,YAAY,CACrB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAClD,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,WAAyB,EACzB,eAAgD;QAEhD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;aAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,IAAI,oBAAoB,CAC7B,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,sBAAsB,IAAI,CAAC,OAAO,0BAA0B,eAAe,oBAAoB,EACpH,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;QACD,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF","file":"expression/function/arg/FuncArgUnion.js","sourcesContent":["import { FuncArg } from \"../FuncArg.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport {\n ExprEvalResult,\n ExprEvalTypeErrorObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { isNullish } from \"../../../IfcExpression.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Types } from \"../../../type/Types.js\";\n\ntype UnpackConstructor<T> = T extends new (boolean, string) => FuncArg<infer U>\n ? U\n : never;\n\nexport class FuncArgUnion<T> extends FuncArg<T> {\n private readonly options: Array<FuncArg<T>>;\n\n constructor(...options: FuncArg<T>[]) {\n super(options[0].required, options[0].name, options[0].defaultValue);\n this.options = options;\n }\n\n public static of<T extends new (boolean, string) => FuncArg<any>>(\n required: boolean,\n name: string,\n constructors: T[]\n ): FuncArgUnion<UnpackConstructor<T>> {\n return new FuncArgUnion<UnpackConstructor<T>>(\n ...constructors.map((c) => new c(required, name))\n );\n }\n\n transformValue(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalResult<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const successResults = this.options\n .map((o) => o.transformValue(callingExpr, invocationValue))\n .filter((r) => !isNullish(r))\n .filter((r) => isExprEvalSuccess(r));\n if (successResults.length === 0) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} is must be one of ${this.options}. The provided value, '${invocationValue}' is not allowed. `,\n callingExpr.getTextSpan()\n );\n }\n return successResults[0];\n }\n\n getType(): ExprType {\n return Types.or(...this.options.map((o) => o.getType()));\n }\n}\n"]}
@@ -0,0 +1,49 @@
1
+ import { Func } from "../Func.js";
2
+ import { ExprEvalSuccessObj } from "../../ExprEvalResult.js";
3
+ import { StringValue } from "../../../value/StringValue.js";
4
+ import { IfcDateTimeValue } from "../../../value/IfcDateTimeValue.js";
5
+ import { IfcTimeStampValue } from "../../../value/IfcTimeStampValue.js";
6
+ import { FuncArgIfcDateTime } from "../arg/FuncArgIfcDateTime.js";
7
+ import { FuncArgIfcDuration } from "../arg/FuncArgIfcDuration.js";
8
+ import { IfcDurationValue } from "../../../value/IfcDurationValue.js";
9
+ import { FuncArgUnion } from "../arg/FuncArgUnion.js";
10
+ import { FuncArgIfcTimeStamp } from "../arg/FuncArgIfcTimeStamp.js";
11
+ import { FuncArgIfcDurationString } from "../arg/FuncArgIfcDurationString.js";
12
+ export class ADDDURATION extends Func {
13
+ constructor() {
14
+ super("ADDDURATION", [
15
+ FuncArgUnion.of(true, "pointInTime", [
16
+ FuncArgIfcTimeStamp,
17
+ FuncArgIfcDateTime,
18
+ ]),
19
+ FuncArgUnion.of(true, "duration", [
20
+ FuncArgIfcDuration,
21
+ FuncArgIfcDurationString,
22
+ ]),
23
+ ]);
24
+ }
25
+ calculateResult(callingExpr, evaluatedArguments) {
26
+ const durationArg = evaluatedArguments.get("duration");
27
+ var duration;
28
+ if (durationArg instanceof IfcDurationValue) {
29
+ duration = durationArg;
30
+ }
31
+ else if (durationArg instanceof StringValue) {
32
+ duration = IfcDurationValue.of(durationArg.getValue());
33
+ }
34
+ const pointInTime = evaluatedArguments.get("pointInTime");
35
+ if (pointInTime instanceof IfcDateTimeValue) {
36
+ return new ExprEvalSuccessObj(pointInTime.addDuration(duration));
37
+ }
38
+ else if (pointInTime instanceof IfcTimeStampValue) {
39
+ return new ExprEvalSuccessObj(pointInTime
40
+ .toIfcDateTimeValue()
41
+ .addDuration(duration)
42
+ .toIfcTimeStampValue());
43
+ }
44
+ }
45
+ getReturnType(argumentTypes) {
46
+ return argumentTypes[0];
47
+ }
48
+ }
49
+ //# sourceMappingURL=ADDDURATION.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["expression/function/impl/ADDDURATION.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,MAAM,OAAO,WAAY,SAAQ,IAAI;IACnC;QACE,KAAK,CAAC,aAAa,EAAE;YACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE;gBACnC,mBAAmB;gBACnB,kBAAkB;aACnB,CAAC;YACF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE;gBAChC,kBAAkB;gBAClB,wBAAwB;aACzB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,QAA0B,CAAC;QAC/B,IAAI,WAAW,YAAY,gBAAgB,EAAE;YAC3C,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM,IAAI,WAAW,YAAY,WAAW,EAAE;YAC7C,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxD;QACD,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,WAAW,YAAY,gBAAgB,EAAE;YAC3C,OAAO,IAAI,kBAAkB,CAC1B,WAAgC,CAAC,WAAW,CAAC,QAAQ,CAAC,CACxD,CAAC;SACH;aAAM,IAAI,WAAW,YAAY,iBAAiB,EAAE;YACnD,OAAO,IAAI,kBAAkB,CAC1B,WAAiC;iBAC/B,kBAAkB,EAAE;iBACpB,WAAW,CAAC,QAAQ,CAAC;iBACrB,mBAAmB,EAAE,CACzB,CAAC;SACH;IACH,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;CACF","file":"expression/function/impl/ADDDURATION.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 { FunctionExpr } from \"../FunctionExpr.js\";\nimport { IfcDateTimeValue } from \"../../../value/IfcDateTimeValue.js\";\nimport { IfcTimeStampValue } from \"../../../value/IfcTimeStampValue.js\";\nimport { FuncArgIfcDateTime } from \"../arg/FuncArgIfcDateTime.js\";\nimport { FuncArgIfcDuration } from \"../arg/FuncArgIfcDuration.js\";\nimport { IfcDurationValue } from \"../../../value/IfcDurationValue.js\";\nimport { FuncArgUnion } from \"../arg/FuncArgUnion.js\";\nimport { FuncArgIfcTimeStamp } from \"../arg/FuncArgIfcTimeStamp.js\";\nimport { FuncArgIfcDurationString } from \"../arg/FuncArgIfcDurationString.js\";\n\nexport class ADDDURATION extends Func {\n constructor() {\n super(\"ADDDURATION\", [\n FuncArgUnion.of(true, \"pointInTime\", [\n FuncArgIfcTimeStamp,\n FuncArgIfcDateTime,\n ]),\n FuncArgUnion.of(true, \"duration\", [\n FuncArgIfcDuration,\n FuncArgIfcDurationString,\n ]),\n ]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const durationArg = evaluatedArguments.get(\"duration\");\n var duration: IfcDurationValue;\n if (durationArg instanceof IfcDurationValue) {\n duration = durationArg;\n } else if (durationArg instanceof StringValue) {\n duration = IfcDurationValue.of(durationArg.getValue());\n }\n const pointInTime = evaluatedArguments.get(\"pointInTime\");\n if (pointInTime instanceof IfcDateTimeValue) {\n return new ExprEvalSuccessObj(\n (pointInTime as IfcDateTimeValue).addDuration(duration)\n );\n } else if (pointInTime instanceof IfcTimeStampValue) {\n return new ExprEvalSuccessObj(\n (pointInTime as IfcTimeStampValue)\n .toIfcDateTimeValue()\n .addDuration(duration)\n .toIfcTimeStampValue()\n );\n }\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return argumentTypes[0];\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["expression/function/impl/AT.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,MAAM,OAAO,EAAG,SAAQ,IAAI;IAC1B;QACE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/B,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IACS,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,UAAU,GACd,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAC/B,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAkB,CAAC,QAAQ,EAAE,CAAC;QAC3E,OAAO,IAAI,kBAAkB,CAC3B,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAoB,CACnD,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,OAAO,YAAY,SAAS,EAAE;YAChC,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxC;QACD,OAAQ,OAAqB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC;CACF","file":"expression/function/impl/AT.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 { Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgNumeric } from \"../arg/FuncArgNumeric\";\nimport { NumericValue } from \"../../../value/NumericValue\";\nimport { FuncArgArray } from \"../arg/FuncArgArray\";\nimport { ArrayValue } from \"../../../value/ArrayValue\";\nimport { TupleType } from \"../../../type/TupleType\";\nimport { ArrayType } from \"../../../type/ArrayType\";\n\nexport class AT extends Func {\n constructor() {\n super(\"AT\", [\n new FuncArgArray(true, \"input\"),\n new FuncArgNumeric(true, \"index\"),\n ]);\n }\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const inputArray = (\n evaluatedArguments.get(\"input\") as ArrayValue\n ).getValue();\n const index = (evaluatedArguments.get(\"index\") as NumericValue).getValue();\n return new ExprEvalSuccessObj(\n inputArray.at(index.toNumber()) as ExpressionValue\n );\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n const arrType = argumentTypes[0];\n if (arrType instanceof TupleType) {\n return Types.or(...arrType.getTypes());\n }\n return (arrType as ArrayType).getElementType();\n }\n}\n"]}
1
+ {"version":3,"sources":["expression/function/impl/AT.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,MAAM,OAAO,EAAG,SAAQ,IAAI;IAC1B;QACE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/B,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IACS,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,UAAU,GACd,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAC/B,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAkB,CAAC,QAAQ,EAAE,CAAC;QAC3E,OAAO,IAAI,kBAAkB,CAC3B,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAoB,CACnD,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,OAAO,YAAY,SAAS,EAAE;YAChC,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxC;QACD,OAAQ,OAAqB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC;CACF","file":"expression/function/impl/AT.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 { Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgNumeric } from \"../arg/FuncArgNumeric.js\";\nimport { NumericValue } from \"../../../value/NumericValue.js\";\nimport { FuncArgArray } from \"../arg/FuncArgArray.js\";\nimport { ArrayValue } from \"../../../value/ArrayValue.js\";\nimport { TupleType } from \"../../../type/TupleType.js\";\nimport { ArrayType } from \"../../../type/ArrayType.js\";\n\nexport class AT extends Func {\n constructor() {\n super(\"AT\", [\n new FuncArgArray(true, \"input\"),\n new FuncArgNumeric(true, \"index\"),\n ]);\n }\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const inputArray = (\n evaluatedArguments.get(\"input\") as ArrayValue\n ).getValue();\n const index = (evaluatedArguments.get(\"index\") as NumericValue).getValue();\n return new ExprEvalSuccessObj(\n inputArray.at(index.toNumber()) as ExpressionValue\n );\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n const arrType = argumentTypes[0];\n if (arrType instanceof TupleType) {\n return Types.or(...arrType.getTypes());\n }\n return (arrType as ArrayType).getElementType();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["expression/function/impl/ApplyRegex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,OAAgB,UAAW,SAAQ,IAAI;IAS3C,YACE,IAAY,EACZ,aAAsB,EACtB,gBAAyB;QAEzB,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;YAC7C,aAAa;gBACX,CAAC,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;gBACtD,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;YAClD,aAAa;gBACX,CAAC,CAAC,IAAI,cAAc,CAChB,KAAK,EACL,UAAU,CAAC,oBAAoB,EAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CACvB;gBACH,CAAC,CAAC,IAAI,gBAAgB,CAClB,KAAK,EACL,UAAU,CAAC,SAAS,EACpB,IAAI,WAAW,CAAC,KAAK,CAAC,CACvB;SACN,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;;AAhCyB,oBAAS,GAAG,OAAO,CAAC;AACpB,sBAAW,GAAG,SAAS,CAAC;AACxB,+BAAoB,GAAG,iBAAiB,CAAC;AACzC,oBAAS,GAAG,OAAO,CAAC","file":"expression/function/impl/ApplyRegex.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { FuncArgSimpleRegex } from \"../arg/FuncArgSimpleRegex.js\";\nimport { FuncArgRegex } from \"../arg/FuncArgRegex.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { StringValue } from \"../../../value/StringValue\";\nimport { FuncArgRegexFlag } from \"../arg/FuncArgRegexFlag\";\n\nexport abstract class ApplyRegex extends Func {\n protected static readonly KEY_INPUT = \"input\";\n protected static readonly KEY_PATTERN = \"pattern\";\n protected static readonly KEY_CASE_INSENSITIVE = \"caseInsensitive\";\n protected static readonly KEY_FLAGS = \"flags\";\n\n protected readonly requireFullMatch: boolean;\n protected readonly simplePattern: boolean;\n\n protected constructor(\n name: string,\n simplePattern: boolean,\n requireFullMatch: boolean\n ) {\n super(name, [\n new FuncArgString(true, ApplyRegex.KEY_INPUT),\n simplePattern\n ? new FuncArgSimpleRegex(true, ApplyRegex.KEY_PATTERN)\n : new FuncArgRegex(true, ApplyRegex.KEY_PATTERN),\n simplePattern\n ? new FuncArgBoolean(\n false,\n ApplyRegex.KEY_CASE_INSENSITIVE,\n BooleanValue.of(false)\n )\n : new FuncArgRegexFlag(\n false,\n ApplyRegex.KEY_FLAGS,\n new StringValue(\"gim\")\n ),\n ]);\n this.requireFullMatch = requireFullMatch;\n this.simplePattern = simplePattern;\n }\n}\n"]}
1
+ {"version":3,"sources":["expression/function/impl/ApplyRegex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,OAAgB,UAAW,SAAQ,IAAI;IAS3C,YACE,IAAY,EACZ,aAAsB,EACtB,gBAAyB;QAEzB,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;YAC7C,aAAa;gBACX,CAAC,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;gBACtD,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;YAClD,aAAa;gBACX,CAAC,CAAC,IAAI,cAAc,CAChB,KAAK,EACL,UAAU,CAAC,oBAAoB,EAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CACvB;gBACH,CAAC,CAAC,IAAI,gBAAgB,CAClB,KAAK,EACL,UAAU,CAAC,SAAS,EACpB,IAAI,WAAW,CAAC,KAAK,CAAC,CACvB;SACN,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;;AAhCyB,oBAAS,GAAG,OAAO,CAAC;AACpB,sBAAW,GAAG,SAAS,CAAC;AACxB,+BAAoB,GAAG,iBAAiB,CAAC;AACzC,oBAAS,GAAG,OAAO,CAAC","file":"expression/function/impl/ApplyRegex.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { FuncArgString } from \"../arg/FuncArgString.js\";\nimport { FuncArgSimpleRegex } from \"../arg/FuncArgSimpleRegex.js\";\nimport { FuncArgRegex } from \"../arg/FuncArgRegex.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { StringValue } from \"../../../value/StringValue.js\";\nimport { FuncArgRegexFlag } from \"../arg/FuncArgRegexFlag.js\";\n\nexport abstract class ApplyRegex extends Func {\n protected static readonly KEY_INPUT = \"input\";\n protected static readonly KEY_PATTERN = \"pattern\";\n protected static readonly KEY_CASE_INSENSITIVE = \"caseInsensitive\";\n protected static readonly KEY_FLAGS = \"flags\";\n\n protected readonly requireFullMatch: boolean;\n protected readonly simplePattern: boolean;\n\n protected constructor(\n name: string,\n simplePattern: boolean,\n requireFullMatch: boolean\n ) {\n super(name, [\n new FuncArgString(true, ApplyRegex.KEY_INPUT),\n simplePattern\n ? new FuncArgSimpleRegex(true, ApplyRegex.KEY_PATTERN)\n : new FuncArgRegex(true, ApplyRegex.KEY_PATTERN),\n simplePattern\n ? new FuncArgBoolean(\n false,\n ApplyRegex.KEY_CASE_INSENSITIVE,\n BooleanValue.of(false)\n )\n : new FuncArgRegexFlag(\n false,\n ApplyRegex.KEY_FLAGS,\n new StringValue(\"gim\")\n ),\n ]);\n this.requireFullMatch = requireFullMatch;\n this.simplePattern = simplePattern;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAG5E,MAAM,OAAO,iBAAkB,SAAQ,IAAI;IAKzC,YAAY,IAAY,EAAE,UAAkB;QAC1C,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAC7D,IAAI,uBAAuB,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,KAAK,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,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;;AA3BuB,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":["expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAG5E,MAAM,OAAO,iBAAkB,SAAQ,IAAI;IAKzC,YAAY,IAAY,EAAE,UAAkB;QAC1C,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAC7D,IAAI,uBAAuB,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,KAAK,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,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;;AA3BuB,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":["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":["expression/function/impl/IF.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EACL,kCAAkC,EAClC,+CAA+C,EAE/C,wCAAwC,EACxC,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iCAAiC,EAAE,MAAM,qDAAqD,CAAC;AACxG,OAAO,EAAE,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AAGtG,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,OAAO,EAAG,SAAQ,IAAI;IAM1B;QACE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC;YACxD,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;YACtC,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;YACtC,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;QACD,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACvE;QACD,MAAM,IAAI,KAAK,CACb,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAC9D,CAAC;IACJ,CAAC;IAES,kBAAkB,CAC1B,qBAA2D,EAC3D,GAAG;QAEH,KAAK,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QACrD,yFAAyF;QACzF,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1D,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,MAAM,IAAI,gCAAgC,CACxC,IAAI,CAAC,IAAI,EACT,EAAE,CAAC,gBAAgB,EACnB,CAAC,EACD,GAAG,EACH,YAAY,EAAE,CAAC,gBAAgB,gCAAgC,EAAE,CAAC,kBAAkB,2DAA2D,CAChJ,CAAC;aACH;SACF;aAAM,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACjE,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpC,MAAM,IAAI,iCAAiC,CACzC,IAAI,CAAC,IAAI,EACT,EAAE,CAAC,gBAAgB,EACnB,CAAC,EACD,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3B,YAAY,EAAE,CAAC,gBAAgB,mCAAmC,EAAE,CAAC,kBAAkB,uDAAuD,CAC/I,CAAC;aACH;SACF;IACH,CAAC;IAES,kBAAkB,CAC1B,WAAsB,EACtB,kBAAgE;QAEhE,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC3B,IAAK,IAAI,CAAC,MAAqB,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACpE,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC/B,kBAAkB,CAAC,GAAG,CACpB,EAAE,CAAC,gBAAgB,EACnB,IAAI,+CAA+C,CACjD,QAAQ,CAAC,kBAAkB,EAC3B,YAAY,EAAE,CAAC,gBAAgB,gCAAgC,EAAE,CAAC,kBAAkB,2DAA2D,EAC/I,IAAI,CAAC,IAAI,EACT,EAAE,CAAC,gBAAgB,EACnB,CAAC,EACD,WAAW,CAAC,WAAW,EAAE,CAC1B,CACF,CAAC;iBACH;aACF;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC3D,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC/B,kBAAkB,CAAC,GAAG,CACpB,EAAE,CAAC,gBAAgB,EACnB,IAAI,wCAAwC,CAC1C,YAAY,EAAE,CAAC,gBAAgB,mCAAmC,EAAE,CAAC,kBAAkB,uDAAuD,EAC9I,IAAI,CAAC,IAAI,EACT,EAAE,CAAC,gBAAgB,EACnB,CAAC,EACD,WAAW,CAAC,WAAW,EAAE,CAC1B,CACF,CAAC;iBACH;aACF;SACF;IACH,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAE9C,CAAC;QACjB,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC3D,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC3D,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE;YACvD,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;YACjE,OAAO,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,kCAAkC,CAC3C,QAAQ,CAAC,QAAQ,EACjB,cAAc,CAAC,KAAK,EACpB,qCAAqC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EACjE,IAAI,CAAC,IAAI,EACT,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;IACJ,CAAC;;AApHuB,qBAAkB,GAAG,WAAW,CAAC;AACjC,gBAAa,GAAG,WAAW,CAAC;AAC5B,gBAAa,GAAG,WAAW,CAAC;AAC5B,mBAAgB,GAAG,cAAc,CAAC","file":"expression/function/impl/IF.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalMissingRequiredFunctionArgumentErrorObj,\n ExprEvalResult,\n ExprEvalSpuriousFunctionArgumentErrorObj,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean.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":["expression/function/impl/NOT.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAG5E,MAAM,OAAO,GAAI,SAAQ,IAAI;IAG3B;QACE,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,uBAAuB,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,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;;AAlBuB,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":["expression/function/impl/NOT.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAG5E,MAAM,OAAO,GAAI,SAAQ,IAAI;IAG3B;QACE,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,uBAAuB,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,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;;AAlBuB,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":["expression/function/impl/ReplacePattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,MAAM,OAAO,cAAe,SAAQ,UAAU;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,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC;YACrD,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,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,kBAAkB,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,cAAc,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,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;;AA9CuB,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":["expression/function/impl/ReplacePattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,MAAM,OAAO,cAAe,SAAQ,UAAU;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,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC;YACrD,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,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,kBAAkB,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,cAAc,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,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;;AA9CuB,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":["expression/function/impl/SPLIT.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,KAAM,SAAQ,IAAI;IAC7B;QACE,KAAK,CAAC,OAAO,EAAE;YACb,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAChC,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;YACpC,IAAI,cAAc,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,kBAAkB,CAC3B,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAEM,aAAa,CAAC,aAAyB;QAC5C,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF","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":["expression/function/impl/SPLIT.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,OAAO,KAAM,SAAQ,IAAI;IAC7B;QACE,KAAK,CAAC,OAAO,EAAE;YACb,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAChC,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;YACpC,IAAI,cAAc,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,kBAAkB,CAC3B,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAEM,aAAa,CAAC,aAAyB;QAC5C,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF","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":["expression/function/impl/SUBSTRING.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,MAAM,OAAO,SAAU,SAAQ,IAAI;IACjC;QACE,KAAK,CAAC,WAAW,EAAE;YACjB,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAChC,IAAI,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;YACpC,IAAI,cAAc,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,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,aAAyB;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF","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":["expression/function/impl/SUBSTRING.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,MAAM,OAAO,SAAU,SAAQ,IAAI;IACjC;QACE,KAAK,CAAC,WAAW,EAAE;YACjB,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;YAChC,IAAI,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;YACpC,IAAI,cAAc,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,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,aAAyB;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF","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"]}
@@ -64,5 +64,4 @@ export class TOBOOLEAN extends Func {
64
64
  return Type.BOOLEAN;
65
65
  }
66
66
  }
67
- TOBOOLEAN.KEY_OBJECT = "object";
68
67
  //# sourceMappingURL=TOBOOLEAN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["expression/function/impl/TOBOOLEAN.ts"],"names":[],"mappings":"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","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\";\nimport { Decimal } from \"decimal.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\nimport { ReferenceValue } from \"../../../value/ReferenceValue\";\n\nexport class TOBOOLEAN extends Func {\n private static readonly KEY_OBJECT = \"object\";\n constructor() {\n super(\"TOBOOLEAN\", [new FuncArgAny(true, \"object\")]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const val = evaluatedArguments.get(\"object\");\n try {\n return new ExprEvalSuccessObj(BooleanValue.of(this.convert(val)));\n } catch (e) {\n return new ExprEvalFunctionEvaluationErrorObj(\n callingExpr.getKind(),\n ExprEvalStatus.ERROR,\n `Cannot convert ${val.getValue()} to boolean: ${e.message}`,\n this.name,\n callingExpr.getTextSpan()\n );\n }\n }\n\n private convert(value: ExpressionValue): boolean {\n if (value instanceof BooleanValue) {\n return value.getValue();\n }\n if (value instanceof StringValue || value instanceof ReferenceValue) {\n switch (value.getValue()) {\n case \"TRUE\":\n case \"true\":\n case \"1\":\n return true;\n case \"FALSE\":\n case \"false\":\n case \"0\":\n return false;\n default:\n throw new Error(`Not a boolean value: ${value.getValue()}`);\n }\n }\n if (value instanceof NumericValue) {\n const val: Decimal = value.getValue();\n if (val.isZero()) {\n return false;\n }\n if (val.toNumber() === 1) {\n return true;\n }\n throw new Error(\"Can only convert 0 or 1 to boolean\");\n }\n if (value instanceof LogicalValue) {\n const val = value.getValue();\n if (val === true) {\n return true;\n }\n if (val === false) {\n return false;\n }\n throw new Error(\"Can only convert 0 or 1 to boolean\");\n }\n throw new Error(\n `numeric conversion not implemented for type ${value.constructor.name}`\n );\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Type.BOOLEAN;\n }\n}\n"]}
1
+ {"version":3,"sources":["expression/function/impl/TOBOOLEAN.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EACL,kCAAkC,EAElC,cAAc,EACd,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,MAAM,OAAO,SAAU,SAAQ,IAAI;IACjC;QACE,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,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,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,kCAAkC,CAC3C,WAAW,CAAC,OAAO,EAAE,EACrB,cAAc,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,YAAY,EAAE;YACjC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;SACzB;QACD,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,YAAY,cAAc,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,YAAY,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,YAAY,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,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF","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,29 @@
1
+ import { Func } from "../Func.js";
2
+ import { ExprEvalSuccessObj } from "../../ExprEvalResult.js";
3
+ import { StringValue } from "../../../value/StringValue.js";
4
+ import { Type } from "../../../type/Types.js";
5
+ import { FuncArgIfcDateString } from "../arg/FuncArgIfcDateString.js";
6
+ import { IfcDateValue } from "../../../value/IfcDateValue.js";
7
+ import { IfcDateTimeValue } from "../../../value/IfcDateTimeValue.js";
8
+ import { FuncArgUnion } from "../arg/FuncArgUnion.js";
9
+ import { FuncArgIfcDateTime } from "../arg/FuncArgIfcDateTime.js";
10
+ export class TOIFCDATE extends Func {
11
+ constructor() {
12
+ super("TOIFCDATE", [
13
+ FuncArgUnion.of(true, "date", [FuncArgIfcDateTime, FuncArgIfcDateString]),
14
+ ]);
15
+ }
16
+ calculateResult(callingExpr, evaluatedArguments) {
17
+ const input = evaluatedArguments.get("date");
18
+ if (input instanceof StringValue) {
19
+ return new ExprEvalSuccessObj(IfcDateValue.of(input.getValue()));
20
+ }
21
+ else if (input instanceof IfcDateTimeValue) {
22
+ return new ExprEvalSuccessObj(input.toIfcDateValue());
23
+ }
24
+ }
25
+ getReturnType(argumentTypes) {
26
+ return Type.IFC_DATE;
27
+ }
28
+ }
29
+ //# sourceMappingURL=TOIFCDATE.js.map