ifc-expressions 2.1.0 → 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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/function/arg/FuncArgBase.ts"],"names":[],"mappings":";;;AAAA,8CAAwC;AACxC,+DAKiC;AAIjC,MAAsB,WAAe,SAAQ,oBAAU;IACrD,YAAsB,QAAiB,EAAE,IAAY,EAAE,YAAgB;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CACZ,WAAyB,EACzB,eAAgD;QAEhD,IAAI,IAAA,qCAAiB,EAAC,eAAe,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACjE;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACO,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACO,iBAAiB,CACzB,WAAyB,EACzB,eAA8B;QAE9B,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AArCD,kCAqCC","file":"expression/function/arg/FuncArgBase.js","sourcesContent":["import { FuncArg } from \"../FuncArg.js\";\nimport {\n ExprEvalError,\n ExprEvalResult,\n ExprEvalSuccess,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\n\nexport abstract class FuncArgBase<T> extends FuncArg<T> {\n protected constructor(required: boolean, name: string, defaultValue?: T) {\n super(required, name, defaultValue);\n }\n\n transformValue(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalResult<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n if (isExprEvalSuccess(invocationValue)) {\n return this.transformForTypeCheck(callingExpr, invocationValue);\n }\n return this.transformForError(callingExpr, invocationValue);\n }\n\n /**\n * Override to type-check the successfully evaluated invocationValue.\n * @protected\n */\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n return invocationValue;\n }\n\n /**\n * Override to transform the error result obtained from evaluating the invocation value.\n * @param invocationValue\n * @protected\n */\n protected transformForError(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalError\n ): ExprEvalResult<ExpressionValue> {\n return invocationValue;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgBase.ts"],"names":[],"mappings":";;;AAAA,8CAAwC;AACxC,+DAMiC;AAGjC,gEAAgE;AAEhE,MAAsB,WAAe,SAAQ,oBAAU;IACrD,YAAsB,QAAiB,EAAE,IAAY,EAAE,YAAgB;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CACZ,WAAyB,EACzB,eAAgD;QAEhD,IAAI,IAAA,qCAAiB,EAAC,eAAe,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC,cAAc,CACxB,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,eAAe,CAAC,EACxD,WAAW,CACZ,CAAC;SACH;QACD,OAAO,IAAI,CAAC,cAAc,CACxB,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC,EACpD,WAAW,CACZ,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,MAAuC,EACvC,WAAyB;QAEzB,IAAI,IAAA,4BAAS,EAAC,MAAM,CAAC,EAAE;YACrB,OAAO,IAAI,wCAAoB,CAC7B,2BAAQ,CAAC,kBAAkB,EAC3B,mCAAmC,IAAI,CAAC,IAAI,EAAE,EAC9C,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;SACH;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACO,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACO,iBAAiB,CACzB,WAAyB,EACzB,eAA8B;QAE9B,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AAzDD,kCAyDC","file":"expression/function/arg/FuncArgBase.js","sourcesContent":["import { FuncArg } from \"../FuncArg.js\";\nimport {\n ExprEvalError,\n ExprEvalResult,\n ExprEvalSuccess,\n ExprEvalTypeErrorObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { ExprKind, isNullish } from \"../../../IfcExpression.js\";\n\nexport abstract class FuncArgBase<T> extends FuncArg<T> {\n protected constructor(required: boolean, name: string, defaultValue?: T) {\n super(required, name, defaultValue);\n }\n\n transformValue(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalResult<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n if (isExprEvalSuccess(invocationValue)) {\n return this.errorIfNullish(\n this.transformForTypeCheck(callingExpr, invocationValue),\n callingExpr\n );\n }\n return this.errorIfNullish(\n this.transformForError(callingExpr, invocationValue),\n callingExpr\n );\n }\n\n private errorIfNullish(\n result: ExprEvalResult<ExpressionValue>,\n callingExpr: FunctionExpr\n ) {\n if (isNullish(result)) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Cannot obtain value of argument ${this.name}`,\n callingExpr.getTextSpan()\n );\n }\n return result;\n }\n\n /**\n * Override to type-check the successfully evaluated invocationValue.\n * @protected\n */\n protected transformForTypeCheck(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalSuccess<ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n return invocationValue;\n }\n\n /**\n * Override to transform the error result obtained from evaluating the invocation value.\n * @param invocationValue\n * @protected\n */\n protected transformForError(\n callingExpr: FunctionExpr,\n invocationValue: ExprEvalError\n ): ExprEvalResult<ExpressionValue> {\n return invocationValue;\n }\n}\n"]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgIfcDateString = void 0;
4
+ const StringValue_js_1 = require("../../../value/StringValue.js");
5
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
6
+ const ExprKind_js_1 = require("../../ExprKind.js");
7
+ const Types_js_1 = require("../../../type/Types.js");
8
+ const IfcDateValue_js_1 = require("../../../value/IfcDateValue.js");
9
+ const FuncArgBase_js_1 = require("./FuncArgBase.js");
10
+ class FuncArgIfcDateString extends FuncArgBase_js_1.FuncArgBase {
11
+ constructor(required, name, defaultValue) {
12
+ super(required, name, defaultValue);
13
+ }
14
+ getType() {
15
+ return Types_js_1.Types.or(Types_js_1.Type.STRING);
16
+ }
17
+ transformForTypeCheck(callingExpr, invocationValue) {
18
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
19
+ if ((0, ExprEvalResult_js_1.isExprEvalError)(val)) {
20
+ return val;
21
+ }
22
+ if (val.result instanceof StringValue_js_1.StringValue) {
23
+ const stringValue = val.result.getValue();
24
+ if (!IfcDateValue_js_1.IfcDateValue.isValidStringRepresentation(stringValue)) {
25
+ return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is an IfcDate of the form 'YYYY-MM-DD', optionally with` +
26
+ `leading + or -, and trailing time zone specification.` +
27
+ `The provided value, '${stringValue}' is not allowed.`, callingExpr.getTextSpan());
28
+ }
29
+ return val;
30
+ }
31
+ }
32
+ }
33
+ exports.FuncArgIfcDateString = FuncArgIfcDateString;
34
+ //# sourceMappingURL=FuncArgIfcDateString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgIfcDateString.ts"],"names":[],"mappings":";;;AAAA,kEAA4D;AAC5D,+DAKiC;AAGjC,mDAA6C;AAE7C,qDAAqD;AACrD,oEAA8D;AAC9D,qDAA+C;AAE/C,MAAa,oBAAqB,SAAQ,4BAAwB;IAChE,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,gBAAK,CAAC,EAAE,CAAC,eAAI,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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,GAAG,CAAC,MAAM,YAAY,4BAAW,EAAE;YACrC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;YACpD,IAAI,CAAC,8BAAY,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;gBAC1D,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,CAAC,kBAAkB,EAC3B,YAAY,IAAI,CAAC,IAAI,0DAA0D;oBAC7E,uDAAuD;oBACvD,wBAAwB,WAAW,mBAAmB,EACxD,WAAW,CAAC,WAAW,EAAE,CAC1B,CAAC;aACH;YACD,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF;AA/BD,oDA+BC","file":"expression/function/arg/FuncArgIfcDateString.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 { IfcDateValue } from \"../../../value/IfcDateValue.js\";\nimport { FuncArgBase } from \"./FuncArgBase.js\";\n\nexport class FuncArgIfcDateString 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 (!IfcDateValue.isValidStringRepresentation(stringValue)) {\n return new ExprEvalTypeErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${this.name} is an IfcDate of the form 'YYYY-MM-DD', optionally with` +\n `leading + or -, and trailing time zone specification.` +\n `The provided value, '${stringValue}' is not allowed.`,\n callingExpr.getTextSpan()\n );\n }\n return val;\n }\n }\n}\n"]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgIfcDateTime = void 0;
4
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
5
+ const Types_js_1 = require("../../../type/Types.js");
6
+ const IfcDateTimeValue_js_1 = require("../../../value/IfcDateTimeValue.js");
7
+ const FuncArgBase_js_1 = require("./FuncArgBase.js");
8
+ class FuncArgIfcDateTime extends FuncArgBase_js_1.FuncArgBase {
9
+ constructor(required, name, defaultValue) {
10
+ super(required, name, defaultValue);
11
+ }
12
+ getType() {
13
+ return Types_js_1.Types.or(Types_js_1.Type.IFC_DATE_TIME);
14
+ }
15
+ transformForTypeCheck(callingExpr, invocationValue) {
16
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
17
+ if ((0, ExprEvalResult_js_1.isExprEvalError)(val)) {
18
+ return val;
19
+ }
20
+ const result = val.result;
21
+ if (result instanceof IfcDateTimeValue_js_1.IfcDateTimeValue) {
22
+ return val;
23
+ }
24
+ }
25
+ }
26
+ exports.FuncArgIfcDateTime = FuncArgIfcDateTime;
27
+ //# sourceMappingURL=FuncArgIfcDateTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgIfcDateTime.ts"],"names":[],"mappings":";;;AAAA,+DAIiC;AAIjC,qDAAqD;AACrD,4EAAsE;AACtE,qDAA+C;AAE/C,MAAa,kBAAmB,SAAQ,4BAA6B;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,gBAAK,CAAC,EAAE,CAAC,eAAI,CAAC,aAAa,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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,sCAAgB,EAAE;YACtC,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF;AA1BD,gDA0BC","file":"expression/function/arg/FuncArgIfcDateTime.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 { IfcDateTimeValue } from \"../../../value/IfcDateTimeValue.js\";\nimport { FuncArgBase } from \"./FuncArgBase.js\";\n\nexport class FuncArgIfcDateTime extends FuncArgBase<IfcDateTimeValue> {\n constructor(\n required: boolean,\n name: string,\n defaultValue?: IfcDateTimeValue\n ) {\n super(required, name, defaultValue);\n }\n\n getType(): ExprType {\n return Types.or(Type.IFC_DATE_TIME);\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 IfcDateTimeValue) {\n return val;\n }\n }\n}\n"]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgIfcDateTimeString = void 0;
4
+ const StringValue_js_1 = require("../../../value/StringValue.js");
5
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
6
+ const ExprKind_js_1 = require("../../ExprKind.js");
7
+ const Types_js_1 = require("../../../type/Types.js");
8
+ const IfcDateTimeValue_js_1 = require("../../../value/IfcDateTimeValue.js");
9
+ const FuncArgBase_js_1 = require("./FuncArgBase.js");
10
+ class FuncArgIfcDateTimeString extends FuncArgBase_js_1.FuncArgBase {
11
+ constructor(required, name, defaultValue) {
12
+ super(required, name, defaultValue);
13
+ }
14
+ getType() {
15
+ return Types_js_1.Types.or(Types_js_1.Type.STRING);
16
+ }
17
+ transformForTypeCheck(callingExpr, invocationValue) {
18
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
19
+ if ((0, ExprEvalResult_js_1.isExprEvalError)(val)) {
20
+ return val;
21
+ }
22
+ const result = val.result;
23
+ if (result instanceof StringValue_js_1.StringValue) {
24
+ const stringValue = result.getValue();
25
+ if (!IfcDateTimeValue_js_1.IfcDateTimeValue.isValidStringRepresentation(stringValue)) {
26
+ return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is an IfcDateTime of the form 'YYYY-MM-DDTHH:MM:SS.sss...', ` +
27
+ `a leading + or - and a trailing time zone specification are allowed.` +
28
+ `The provided value, '${stringValue}' is not allowed. `, callingExpr.getTextSpan());
29
+ }
30
+ return val;
31
+ }
32
+ }
33
+ }
34
+ exports.FuncArgIfcDateTimeString = FuncArgIfcDateTimeString;
35
+ //# sourceMappingURL=FuncArgIfcDateTimeString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgIfcDateTimeString.ts"],"names":[],"mappings":";;;AAAA,kEAA4D;AAC5D,+DAKiC;AAGjC,mDAA6C;AAE7C,qDAAqD;AACrD,4EAAsE;AACtE,qDAA+C;AAE/C,MAAa,wBAAyB,SAAQ,4BAAwB;IACpE,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,gBAAK,CAAC,EAAE,CAAC,eAAI,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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,4BAAW,EAAE;YACjC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAY,CAAC;YAChD,IAAI,CAAC,sCAAgB,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;gBAC9D,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,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;AAhCD,4DAgCC","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,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgIfcDuration = void 0;
4
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
5
+ const Types_js_1 = require("../../../type/Types.js");
6
+ const IfcDurationValue_js_1 = require("../../../value/IfcDurationValue.js");
7
+ const FuncArgBase_js_1 = require("./FuncArgBase.js");
8
+ class FuncArgIfcDuration extends FuncArgBase_js_1.FuncArgBase {
9
+ constructor(required, name, defaultValue) {
10
+ super(required, name, defaultValue);
11
+ }
12
+ getType() {
13
+ return Types_js_1.Types.or(Types_js_1.Type.IFC_DURATION);
14
+ }
15
+ transformForTypeCheck(callingExpr, invocationValue) {
16
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
17
+ if ((0, ExprEvalResult_js_1.isExprEvalError)(val)) {
18
+ return val;
19
+ }
20
+ const result = val.result;
21
+ if (result instanceof IfcDurationValue_js_1.IfcDurationValue) {
22
+ return val;
23
+ }
24
+ }
25
+ }
26
+ exports.FuncArgIfcDuration = FuncArgIfcDuration;
27
+ //# sourceMappingURL=FuncArgIfcDuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgIfcDuration.ts"],"names":[],"mappings":";;;AAAA,+DAIiC;AAIjC,qDAAqD;AACrD,4EAAsE;AACtE,qDAA+C;AAE/C,MAAa,kBAAmB,SAAQ,4BAA6B;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,gBAAK,CAAC,EAAE,CAAC,eAAI,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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,sCAAgB,EAAE;YACtC,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF;AA1BD,gDA0BC","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,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgIfcDurationString = void 0;
4
+ const FuncArgString_js_1 = require("./FuncArgString.js");
5
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
6
+ const ExprKind_js_1 = require("../../ExprKind.js");
7
+ const Types_js_1 = require("../../../type/Types.js");
8
+ const IfcDurationValue_js_1 = require("../../../value/IfcDurationValue.js");
9
+ class FuncArgIfcDurationString extends FuncArgString_js_1.FuncArgString {
10
+ constructor(required, name, defaultValue) {
11
+ super(required, name, defaultValue);
12
+ }
13
+ getType() {
14
+ return Types_js_1.Type.STRING;
15
+ }
16
+ transformForTypeCheck(callingExpr, invocationValue) {
17
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
18
+ if ((0, ExprEvalResult_js_1.isExprEvalError)(val)) {
19
+ return val;
20
+ }
21
+ const stringValue = val.result.getValue();
22
+ if (!IfcDurationValue_js_1.IfcDurationValue.isValidStringRepresentation(stringValue)) {
23
+ return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is an IfcDate of the form 'YYYY-MM-DD'.` +
24
+ `The provided value, '${stringValue}' is not allowed. `, callingExpr.getTextSpan());
25
+ }
26
+ return val;
27
+ }
28
+ }
29
+ exports.FuncArgIfcDurationString = FuncArgIfcDurationString;
30
+ //# sourceMappingURL=FuncArgIfcDurationString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgIfcDurationString.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AAEnD,+DAKiC;AAGjC,mDAA6C;AAE7C,qDAA8C;AAC9C,4EAAsE;AAEtE,MAAa,wBAAyB,SAAQ,gCAAa;IACzD,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,eAAI,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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;QACpD,IAAI,CAAC,sCAAgB,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;YAC9D,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,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;AA5BD,4DA4BC","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,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgIfcTimeStamp = void 0;
4
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
5
+ const Types_js_1 = require("../../../type/Types.js");
6
+ const IfcTimeStampValue_js_1 = require("../../../value/IfcTimeStampValue.js");
7
+ const FuncArgBase_js_1 = require("./FuncArgBase.js");
8
+ class FuncArgIfcTimeStamp extends FuncArgBase_js_1.FuncArgBase {
9
+ constructor(required, name, defaultValue) {
10
+ super(required, name, defaultValue);
11
+ }
12
+ getType() {
13
+ return Types_js_1.Types.or(Types_js_1.Type.IFC_TIME_STAMP);
14
+ }
15
+ transformForTypeCheck(callingExpr, invocationValue) {
16
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
17
+ if ((0, ExprEvalResult_js_1.isExprEvalError)(val)) {
18
+ return val;
19
+ }
20
+ const result = val.result;
21
+ if (result instanceof IfcTimeStampValue_js_1.IfcTimeStampValue) {
22
+ return val;
23
+ }
24
+ }
25
+ }
26
+ exports.FuncArgIfcTimeStamp = FuncArgIfcTimeStamp;
27
+ //# sourceMappingURL=FuncArgIfcTimeStamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgIfcTimeStamp.ts"],"names":[],"mappings":";;;AAAA,+DAIiC;AAIjC,qDAAqD;AACrD,8EAAwE;AACxE,qDAA+C;AAE/C,MAAa,mBAAoB,SAAQ,4BAA8B;IACrE,YACE,QAAiB,EACjB,IAAY,EACZ,YAAgC;QAEhC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,gBAAK,CAAC,EAAE,CAAC,eAAI,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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,YAAY,wCAAiB,EAAE;YACvC,OAAO,GAAG,CAAC;SACZ;IACH,CAAC;CACF;AA1BD,kDA0BC","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,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgIfcTimeStampNumeric = void 0;
4
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
5
+ const ExprKind_js_1 = require("../../ExprKind.js");
6
+ const FuncArgNumeric_js_1 = require("./FuncArgNumeric.js");
7
+ const NumericValue_js_1 = require("../../../value/NumericValue.js");
8
+ const Types_js_1 = require("../../../type/Types.js");
9
+ class FuncArgIfcTimeStampNumeric extends FuncArgNumeric_js_1.FuncArgNumeric {
10
+ constructor(required, name, defaultValue) {
11
+ super(required, name, defaultValue);
12
+ }
13
+ getType() {
14
+ return Types_js_1.Types.or(Types_js_1.Type.NUMERIC);
15
+ }
16
+ transformForTypeCheck(callingExpr, invocationValue) {
17
+ const result = invocationValue.result;
18
+ if (result instanceof NumericValue_js_1.NumericValue) {
19
+ const value = result.getValue();
20
+ if (value.isInteger()) {
21
+ return invocationValue;
22
+ }
23
+ }
24
+ return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} must be an integer or an IfcDateTimeValue, but was ${JSON.stringify(result.getValue())}`, result.getValue(), callingExpr.getTextSpan());
25
+ }
26
+ }
27
+ exports.FuncArgIfcTimeStampNumeric = FuncArgIfcTimeStampNumeric;
28
+ //# sourceMappingURL=FuncArgIfcTimeStampNumeric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgIfcTimeStampNumeric.ts"],"names":[],"mappings":";;;AAAA,+DAIiC;AAGjC,mDAA6C;AAC7C,2DAAqD;AACrD,oEAA8D;AAE9D,qDAAqD;AAGrD,MAAa,0BAA2B,SAAQ,kCAAc;IAC5D,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA2B;QACtE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,gBAAK,CAAC,EAAE,CAAC,eAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAES,qBAAqB,CAC7B,WAAyB,EACzB,eAAiD;QAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;QACtC,IAAI,MAAM,YAAY,8BAAY,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,wCAAoB,CAC7B,sBAAQ,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;AA/BD,gEA+BC","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,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgIfcTimeString = void 0;
4
+ const StringValue_js_1 = require("../../../value/StringValue.js");
5
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
6
+ const ExprKind_js_1 = require("../../ExprKind.js");
7
+ const Types_js_1 = require("../../../type/Types.js");
8
+ const IfcTimeValue_js_1 = require("../../../value/IfcTimeValue.js");
9
+ const FuncArgBase_js_1 = require("./FuncArgBase.js");
10
+ class FuncArgIfcTimeString extends FuncArgBase_js_1.FuncArgBase {
11
+ constructor(required, name, defaultValue) {
12
+ super(required, name, defaultValue);
13
+ }
14
+ getType() {
15
+ return Types_js_1.Types.or(Types_js_1.Type.STRING);
16
+ }
17
+ transformForTypeCheck(callingExpr, invocationValue) {
18
+ const val = super.transformForTypeCheck(callingExpr, invocationValue);
19
+ if ((0, ExprEvalResult_js_1.isExprEvalError)(val)) {
20
+ return val;
21
+ }
22
+ if (val.result instanceof StringValue_js_1.StringValue) {
23
+ const stringValue = val.result.getValue();
24
+ if (!IfcTimeValue_js_1.IfcTimeValue.isValidStringRepresentation(stringValue)) {
25
+ return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is an IfcTime of the form 'HH:MM:SS.sss...'.` +
26
+ `a trailing time zone specification is allowed.` +
27
+ `The provided value, '${stringValue}' is not allowed. `, callingExpr.getTextSpan());
28
+ }
29
+ return val;
30
+ }
31
+ }
32
+ }
33
+ exports.FuncArgIfcTimeString = FuncArgIfcTimeString;
34
+ //# sourceMappingURL=FuncArgIfcTimeString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgIfcTimeString.ts"],"names":[],"mappings":";;;AAAA,kEAA4D;AAC5D,+DAKiC;AAGjC,mDAA6C;AAE7C,qDAAqD;AACrD,oEAA8D;AAC9D,qDAA+C;AAE/C,MAAa,oBAAqB,SAAQ,4BAAwB;IAChE,YAAY,QAAiB,EAAE,IAAY,EAAE,YAA0B;QACrE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,gBAAK,CAAC,EAAE,CAAC,eAAI,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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,GAAG,CAAC,MAAM,YAAY,4BAAW,EAAE;YACrC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;YACpD,IAAI,CAAC,8BAAY,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;gBAC1D,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,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;AA/BD,oDA+BC","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":["../../src/expression/function/arg/FuncArgLogicalOrBoolean.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAE/C,+DAIiC;AACjC,mDAA6C;AAE7C,qDAAqD;AAGrD,oEAA8D;AAE9D,MAAa,uBAAwB,SAAQ,4BAE5C;IACC,YACE,QAAiB,EACjB,IAAY,EACZ,YAA0C;QAE1C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,gBAAK,CAAC,EAAE,CAAC,eAAI,CAAC,OAAO,EAAE,eAAI,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,8BAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACjC,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,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;AAjCD,0DAiCC","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":["../../src/expression/function/arg/FuncArgLogicalOrBoolean.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAE/C,+DAIiC;AACjC,mDAA6C;AAE7C,qDAAqD;AAGrD,oEAA8D;AAE9D,MAAa,uBAAwB,SAAQ,4BAE5C;IACC,YACE,QAAiB,EACjB,IAAY,EACZ,YAA0C;QAE1C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,gBAAK,CAAC,EAAE,CAAC,eAAI,CAAC,OAAO,EAAE,eAAI,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,8BAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACjC,OAAO,eAAe,CAAC;SACxB;QACD,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,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;AAjCD,0DAiCC","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":["../../src/expression/function/arg/FuncArgRegexFlag.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AAEnD,+DAKiC;AAGjC,mDAA6C;AAC7C,+EAAgE;AAEhE,MAAa,gBAAiB,SAAQ,gCAAa;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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;QACpD,IACE,IAAA,iCAAS,EAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,0BAA0B;YACxE,CAAC,IAAA,iCAAS,EAAC,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EACpD;YACA,4BAA4B,CAAC,OAAO,IAAI,wCAAoB,CAC1D,sBAAQ,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;AA7BD,4CA6BC","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":["../../src/expression/function/arg/FuncArgRegexFlag.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AAEnD,+DAKiC;AAGjC,mDAA6C;AAC7C,+EAAgE;AAEhE,MAAa,gBAAiB,SAAQ,gCAAa;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,IAAA,mCAAe,EAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAY,CAAC;QACpD,IACE,IAAA,iCAAS,EAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,0BAA0B;YACxE,CAAC,IAAA,iCAAS,EAAC,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,EACpD;YACA,4BAA4B,CAAC,OAAO,IAAI,wCAAoB,CAC1D,sBAAQ,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;AA7BD,4CA6BC","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,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FuncArgUnion = void 0;
4
+ const FuncArg_js_1 = require("../FuncArg.js");
5
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
6
+ const ExprKind_js_1 = require("../../ExprKind.js");
7
+ const IfcExpression_js_1 = require("../../../IfcExpression.js");
8
+ const Types_js_1 = require("../../../type/Types.js");
9
+ class FuncArgUnion extends FuncArg_js_1.FuncArg {
10
+ constructor(...options) {
11
+ super(options[0].required, options[0].name, options[0].defaultValue);
12
+ this.options = options;
13
+ }
14
+ static of(required, name, constructors) {
15
+ return new FuncArgUnion(...constructors.map((c) => new c(required, name)));
16
+ }
17
+ transformValue(callingExpr, invocationValue) {
18
+ const successResults = this.options
19
+ .map((o) => o.transformValue(callingExpr, invocationValue))
20
+ .filter((r) => !(0, IfcExpression_js_1.isNullish)(r))
21
+ .filter((r) => (0, ExprEvalResult_js_1.isExprEvalSuccess)(r));
22
+ if (successResults.length === 0) {
23
+ return new ExprEvalResult_js_1.ExprEvalTypeErrorObj(ExprKind_js_1.ExprKind.FUNCTION_ARGUMENTS, `Argument ${this.name} is must be one of ${this.options}. The provided value, '${invocationValue}' is not allowed. `, callingExpr.getTextSpan());
24
+ }
25
+ return successResults[0];
26
+ }
27
+ getType() {
28
+ return Types_js_1.Types.or(...this.options.map((o) => o.getType()));
29
+ }
30
+ }
31
+ exports.FuncArgUnion = FuncArgUnion;
32
+ //# sourceMappingURL=FuncArgUnion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/arg/FuncArgUnion.ts"],"names":[],"mappings":";;;AAAA,8CAAwC;AAExC,+DAIiC;AAEjC,mDAA6C;AAC7C,gEAAsD;AAEtD,qDAA+C;AAM/C,MAAa,YAAgB,SAAQ,oBAAU;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,IAAA,4BAAS,EAAC,CAAC,CAAC,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qCAAiB,EAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,IAAI,wCAAoB,CAC7B,sBAAQ,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,gBAAK,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;AAvCD,oCAuCC","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,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ADDDURATION = void 0;
4
+ const Func_js_1 = require("../Func.js");
5
+ const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
6
+ const StringValue_js_1 = require("../../../value/StringValue.js");
7
+ const IfcDateTimeValue_js_1 = require("../../../value/IfcDateTimeValue.js");
8
+ const IfcTimeStampValue_js_1 = require("../../../value/IfcTimeStampValue.js");
9
+ const FuncArgIfcDateTime_js_1 = require("../arg/FuncArgIfcDateTime.js");
10
+ const FuncArgIfcDuration_js_1 = require("../arg/FuncArgIfcDuration.js");
11
+ const IfcDurationValue_js_1 = require("../../../value/IfcDurationValue.js");
12
+ const FuncArgUnion_js_1 = require("../arg/FuncArgUnion.js");
13
+ const FuncArgIfcTimeStamp_js_1 = require("../arg/FuncArgIfcTimeStamp.js");
14
+ const FuncArgIfcDurationString_js_1 = require("../arg/FuncArgIfcDurationString.js");
15
+ class ADDDURATION extends Func_js_1.Func {
16
+ constructor() {
17
+ super("ADDDURATION", [
18
+ FuncArgUnion_js_1.FuncArgUnion.of(true, "pointInTime", [
19
+ FuncArgIfcTimeStamp_js_1.FuncArgIfcTimeStamp,
20
+ FuncArgIfcDateTime_js_1.FuncArgIfcDateTime,
21
+ ]),
22
+ FuncArgUnion_js_1.FuncArgUnion.of(true, "duration", [
23
+ FuncArgIfcDuration_js_1.FuncArgIfcDuration,
24
+ FuncArgIfcDurationString_js_1.FuncArgIfcDurationString,
25
+ ]),
26
+ ]);
27
+ }
28
+ calculateResult(callingExpr, evaluatedArguments) {
29
+ const durationArg = evaluatedArguments.get("duration");
30
+ var duration;
31
+ if (durationArg instanceof IfcDurationValue_js_1.IfcDurationValue) {
32
+ duration = durationArg;
33
+ }
34
+ else if (durationArg instanceof StringValue_js_1.StringValue) {
35
+ duration = IfcDurationValue_js_1.IfcDurationValue.of(durationArg.getValue());
36
+ }
37
+ const pointInTime = evaluatedArguments.get("pointInTime");
38
+ if (pointInTime instanceof IfcDateTimeValue_js_1.IfcDateTimeValue) {
39
+ return new ExprEvalResult_js_1.ExprEvalSuccessObj(pointInTime.addDuration(duration));
40
+ }
41
+ else if (pointInTime instanceof IfcTimeStampValue_js_1.IfcTimeStampValue) {
42
+ return new ExprEvalResult_js_1.ExprEvalSuccessObj(pointInTime
43
+ .toIfcDateTimeValue()
44
+ .addDuration(duration)
45
+ .toIfcTimeStampValue());
46
+ }
47
+ }
48
+ getReturnType(argumentTypes) {
49
+ return argumentTypes[0];
50
+ }
51
+ }
52
+ exports.ADDDURATION = ADDDURATION;
53
+ //# sourceMappingURL=ADDDURATION.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/function/impl/ADDDURATION.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAC7E,kEAA4D;AAG5D,4EAAsE;AACtE,8EAAwE;AACxE,wEAAkE;AAClE,wEAAkE;AAClE,4EAAsE;AACtE,4DAAsD;AACtD,0EAAoE;AACpE,oFAA8E;AAE9E,MAAa,WAAY,SAAQ,cAAI;IACnC;QACE,KAAK,CAAC,aAAa,EAAE;YACnB,8BAAY,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE;gBACnC,4CAAmB;gBACnB,0CAAkB;aACnB,CAAC;YACF,8BAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE;gBAChC,0CAAkB;gBAClB,sDAAwB;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,sCAAgB,EAAE;YAC3C,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM,IAAI,WAAW,YAAY,4BAAW,EAAE;YAC7C,QAAQ,GAAG,sCAAgB,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,sCAAgB,EAAE;YAC3C,OAAO,IAAI,sCAAkB,CAC1B,WAAgC,CAAC,WAAW,CAAC,QAAQ,CAAC,CACxD,CAAC;SACH;aAAM,IAAI,WAAW,YAAY,wCAAiB,EAAE;YACnD,OAAO,IAAI,sCAAkB,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;AA3CD,kCA2CC","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":["../../src/expression/function/impl/AT.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAE7E,qDAA+C;AAE/C,gEAA0D;AAE1D,4DAAsD;AAEtD,6DAAuD;AAGvD,MAAa,EAAG,SAAQ,cAAI;IAC1B;QACE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,8BAAY,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/B,IAAI,kCAAc,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,sCAAkB,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,wBAAS,EAAE;YAChC,OAAO,gBAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxC;QACD,OAAQ,OAAqB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC;CACF;AA3BD,gBA2BC","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":["../../src/expression/function/impl/AT.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAE7E,qDAA+C;AAE/C,gEAA0D;AAE1D,4DAAsD;AAEtD,6DAAuD;AAGvD,MAAa,EAAG,SAAQ,cAAI;IAC1B;QACE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,8BAAY,CAAC,IAAI,EAAE,OAAO,CAAC;YAC/B,IAAI,kCAAc,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,sCAAkB,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,wBAAS,EAAE;YAChC,OAAO,gBAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxC;QACD,OAAQ,OAAqB,CAAC,cAAc,EAAE,CAAC;IACjD,CAAC;CACF;AA3BD,gBA2BC","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":["../../src/expression/function/impl/ApplyRegex.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,8DAAwD;AACxD,wEAAkE;AAClE,4DAAsD;AACtD,gEAA0D;AAC1D,oEAA8D;AAC9D,kEAA4D;AAC5D,oEAA8D;AAE9D,MAAsB,UAAW,SAAQ,cAAI;IAS3C,YACE,IAAY,EACZ,aAAsB,EACtB,gBAAyB;QAEzB,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,gCAAa,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;YAC7C,aAAa;gBACX,CAAC,CAAC,IAAI,0CAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;gBACtD,CAAC,CAAC,IAAI,8BAAY,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;YAClD,aAAa;gBACX,CAAC,CAAC,IAAI,kCAAc,CAChB,KAAK,EACL,UAAU,CAAC,oBAAoB,EAC/B,8BAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CACvB;gBACH,CAAC,CAAC,IAAI,sCAAgB,CAClB,KAAK,EACL,UAAU,CAAC,SAAS,EACpB,IAAI,4BAAW,CAAC,KAAK,CAAC,CACvB;SACN,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;;AAjCH,gCAkCC;AAjC2B,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":["../../src/expression/function/impl/ApplyRegex.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAClC,8DAAwD;AACxD,wEAAkE;AAClE,4DAAsD;AACtD,gEAA0D;AAC1D,oEAA8D;AAC9D,kEAA4D;AAC5D,oEAA8D;AAE9D,MAAsB,UAAW,SAAQ,cAAI;IAS3C,YACE,IAAY,EACZ,aAAsB,EACtB,gBAAyB;QAEzB,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,gCAAa,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;YAC7C,aAAa;gBACX,CAAC,CAAC,IAAI,0CAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;gBACtD,CAAC,CAAC,IAAI,8BAAY,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;YAClD,aAAa;gBACX,CAAC,CAAC,IAAI,kCAAc,CAChB,KAAK,EACL,UAAU,CAAC,oBAAoB,EAC/B,8BAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CACvB;gBACH,CAAC,CAAC,IAAI,sCAAgB,CAClB,KAAK,EACL,UAAU,CAAC,SAAS,EACpB,IAAI,4BAAW,CAAC,KAAK,CAAC,CACvB;SACN,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;;AAjCH,gCAkCC;AAjC2B,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":["../../src/expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAElC,+DAA6E;AAC7E,qDAA+C;AAG/C,kFAA4E;AAG5E,MAAa,iBAAkB,SAAQ,cAAI;IAKzC,YAAY,IAAY,EAAE,UAAkB;QAC1C,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,oDAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAC7D,IAAI,oDAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;SAC/D,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,gBAAK,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;IACpC,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAE9C,CAAC;QACjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAEhD,CAAC;QACjB,OAAO,IAAI,sCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;;AA5BH,8CA6BC;AA5ByB,0BAAQ,GAAG,MAAM,CAAC;AAClB,2BAAS,GAAG,OAAO,CAAC","file":"expression/function/impl/FuncBooleanBinary.js","sourcesContent":["import { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { Types } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\n\nexport class FuncBooleanBinary extends Func {\n private static readonly KEY_LEFT = \"left\";\n private static readonly KEY_RIGHT = \"right\";\n private readonly methodName: string;\n\n constructor(name: string, methodName: string) {\n super(name, [\n new FuncArgLogicalOrBoolean(true, FuncBooleanBinary.KEY_LEFT),\n new FuncArgLogicalOrBoolean(true, FuncBooleanBinary.KEY_RIGHT),\n ]);\n this.methodName = methodName;\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Types.or(...argumentTypes);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const left = evaluatedArguments.get(FuncBooleanBinary.KEY_LEFT) as\n | BooleanValue\n | LogicalValue;\n const right = evaluatedArguments.get(FuncBooleanBinary.KEY_RIGHT) as\n | BooleanValue\n | LogicalValue;\n return new ExprEvalSuccessObj(left[this.methodName].call(left, right));\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/expression/function/impl/FuncBooleanBinary.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAElC,+DAA6E;AAC7E,qDAA+C;AAG/C,kFAA4E;AAG5E,MAAa,iBAAkB,SAAQ,cAAI;IAKzC,YAAY,IAAY,EAAE,UAAkB;QAC1C,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,oDAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC;YAC7D,IAAI,oDAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;SAC/D,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,gBAAK,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;IACpC,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAE9C,CAAC;QACjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAEhD,CAAC;QACjB,OAAO,IAAI,sCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;;AA5BH,8CA6BC;AA5ByB,0BAAQ,GAAG,MAAM,CAAC;AAClB,2BAAS,GAAG,OAAO,CAAC","file":"expression/function/impl/FuncBooleanBinary.js","sourcesContent":["import { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { Types } from \"../../../type/Types.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\n\nexport class FuncBooleanBinary extends Func {\n private static readonly KEY_LEFT = \"left\";\n private static readonly KEY_RIGHT = \"right\";\n private readonly methodName: string;\n\n constructor(name: string, methodName: string) {\n super(name, [\n new FuncArgLogicalOrBoolean(true, FuncBooleanBinary.KEY_LEFT),\n new FuncArgLogicalOrBoolean(true, FuncBooleanBinary.KEY_RIGHT),\n ]);\n this.methodName = methodName;\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Types.or(...argumentTypes);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const left = evaluatedArguments.get(FuncBooleanBinary.KEY_LEFT) as\n | BooleanValue\n | LogicalValue;\n const right = evaluatedArguments.get(FuncBooleanBinary.KEY_RIGHT) as\n | BooleanValue\n | LogicalValue;\n return new ExprEvalSuccessObj(left[this.methodName].call(left, right));\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/function/impl/IF.ts"],"names":[],"mappings":"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","file":"expression/function/impl/IF.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalMissingRequiredFunctionArgumentErrorObj,\n ExprEvalResult,\n ExprEvalSpuriousFunctionArgumentErrorObj,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean\";\nimport { ParserRuleContext } from \"antlr4\";\nimport { ExprKind } from \"../../ExprKind\";\nimport { SpuriousFunctionArgumentException } from \"../../../error/SpuriousFunctionArgumentException\";\nimport { MissingFunctionArgumentException } from \"../../../error/MissingFunctionArgumentException\";\nimport { Value } from \"../../../value/Value\";\nimport { Expr } from \"../../Expr\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\n\nexport class IF extends Func {\n private static readonly ARG_NAME_CONDITION = \"condition\";\n private static readonly ARG_NAME_THEN = \"thenValue\";\n private static readonly ARG_NAME_ELSE = \"elseValue\";\n private static readonly ARG_NAME_UNKNOWN = \"unknownValue\";\n\n constructor() {\n super(\"IF\", [\n new FuncArgLogicalOrBoolean(true, IF.ARG_NAME_CONDITION),\n new FuncArgAny(true, IF.ARG_NAME_THEN),\n new FuncArgAny(true, IF.ARG_NAME_ELSE),\n new FuncArgAny(false, IF.ARG_NAME_UNKNOWN),\n ]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n if (argumentTypes.length == 3) {\n return Types.or(argumentTypes[1], argumentTypes[2]);\n }\n if (argumentTypes.length == 4) {\n return Types.or(argumentTypes[1], argumentTypes[2], argumentTypes[3]);\n }\n throw new Error(\n \"Unexpected argument types: \" + JSON.stringify(argumentTypes)\n );\n }\n\n protected checkArgumentTypes(\n providedArgumentTypes: Array<[ParserRuleContext, ExprType]>,\n ctx\n ) {\n super.checkArgumentTypes(providedArgumentTypes, ctx);\n //extra check: if our value to be checked is a Logical, the unknownValue must be provided\n if (providedArgumentTypes[0][1].isSameTypeAs(Type.LOGICAL)) {\n if (providedArgumentTypes.length < 4) {\n throw new MissingFunctionArgumentException(\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n ctx,\n `Argument ${IF.ARG_NAME_UNKNOWN} is required if the argument ${IF.ARG_NAME_CONDITION} is of type logical (i.e., can be true, false or unknown)`\n );\n }\n } else if (providedArgumentTypes[0][1].isSameTypeAs(Type.BOOLEAN)) {\n if (providedArgumentTypes.length > 3) {\n throw new SpuriousFunctionArgumentException(\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n providedArgumentTypes[3][0],\n `Argument ${IF.ARG_NAME_UNKNOWN} is not allowed if the argument ${IF.ARG_NAME_CONDITION} is of type boolean (i.e., can only be true or false)`\n );\n }\n }\n }\n\n protected transformArguments(\n callingExpr: Expr<any>,\n evaluatedArguments: Map<string, ExprEvalResult<ExpressionValue>>\n ) {\n const cond = evaluatedArguments.get(IF.ARG_NAME_CONDITION);\n if (isExprEvalSuccess(cond)) {\n if ((cond.result as Value<any>).getType().isSameTypeAs(Type.LOGICAL)) {\n if (evaluatedArguments.size < 4) {\n evaluatedArguments.set(\n IF.ARG_NAME_UNKNOWN,\n new ExprEvalMissingRequiredFunctionArgumentErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${IF.ARG_NAME_UNKNOWN} is required if the argument ${IF.ARG_NAME_CONDITION} is of type logical (i.e., can be true, false or unknown)`,\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n callingExpr.getTextSpan()\n )\n );\n }\n } else if (cond.result.getType().isSameTypeAs(Type.BOOLEAN)) {\n if (evaluatedArguments.size > 3) {\n evaluatedArguments.set(\n IF.ARG_NAME_UNKNOWN,\n new ExprEvalSpuriousFunctionArgumentErrorObj(\n `Argument ${IF.ARG_NAME_UNKNOWN} is not allowed if the argument ${IF.ARG_NAME_CONDITION} is of type boolean (i.e., can only be true or false)`,\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n callingExpr.getTextSpan()\n )\n );\n }\n }\n }\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const condition = evaluatedArguments.get(IF.ARG_NAME_CONDITION) as\n | LogicalValue\n | BooleanValue;\n if (condition.isTrue()) {\n const thenValue = evaluatedArguments.get(IF.ARG_NAME_THEN);\n return new ExprEvalSuccessObj(thenValue);\n } else if (condition.isFalse()) {\n const elseValue = evaluatedArguments.get(IF.ARG_NAME_ELSE);\n return new ExprEvalSuccessObj(elseValue);\n } else if (LogicalValue.isUnknown(condition.getValue())) {\n const unknownValue = evaluatedArguments.get(IF.ARG_NAME_UNKNOWN);\n return new ExprEvalSuccessObj(unknownValue);\n }\n return new ExprEvalFunctionEvaluationErrorObj(\n ExprKind.FUNCTION,\n ExprEvalStatus.ERROR,\n \"Cannot handle value of condtition: \" + JSON.stringify(condition),\n this.name,\n callingExpr.getTextSpan()\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/expression/function/impl/IF.ts"],"names":[],"mappings":"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","file":"expression/function/impl/IF.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport {\n ExprEvalFunctionEvaluationErrorObj,\n ExprEvalMissingRequiredFunctionArgumentErrorObj,\n ExprEvalResult,\n ExprEvalSpuriousFunctionArgumentErrorObj,\n ExprEvalStatus,\n ExprEvalSuccessObj,\n isExprEvalSuccess,\n} from \"../../ExprEvalResult.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Type, Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean.js\";\nimport { ParserRuleContext } from \"antlr4\";\nimport { ExprKind } from \"../../ExprKind.js\";\nimport { SpuriousFunctionArgumentException } from \"../../../error/SpuriousFunctionArgumentException.js\";\nimport { MissingFunctionArgumentException } from \"../../../error/MissingFunctionArgumentException.js\";\nimport { Value } from \"../../../value/Value.js\";\nimport { Expr } from \"../../Expr.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\n\nexport class IF extends Func {\n private static readonly ARG_NAME_CONDITION = \"condition\";\n private static readonly ARG_NAME_THEN = \"thenValue\";\n private static readonly ARG_NAME_ELSE = \"elseValue\";\n private static readonly ARG_NAME_UNKNOWN = \"unknownValue\";\n\n constructor() {\n super(\"IF\", [\n new FuncArgLogicalOrBoolean(true, IF.ARG_NAME_CONDITION),\n new FuncArgAny(true, IF.ARG_NAME_THEN),\n new FuncArgAny(true, IF.ARG_NAME_ELSE),\n new FuncArgAny(false, IF.ARG_NAME_UNKNOWN),\n ]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n if (argumentTypes.length == 3) {\n return Types.or(argumentTypes[1], argumentTypes[2]);\n }\n if (argumentTypes.length == 4) {\n return Types.or(argumentTypes[1], argumentTypes[2], argumentTypes[3]);\n }\n throw new Error(\n \"Unexpected argument types: \" + JSON.stringify(argumentTypes)\n );\n }\n\n protected checkArgumentTypes(\n providedArgumentTypes: Array<[ParserRuleContext, ExprType]>,\n ctx\n ) {\n super.checkArgumentTypes(providedArgumentTypes, ctx);\n //extra check: if our value to be checked is a Logical, the unknownValue must be provided\n if (providedArgumentTypes[0][1].isSameTypeAs(Type.LOGICAL)) {\n if (providedArgumentTypes.length < 4) {\n throw new MissingFunctionArgumentException(\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n ctx,\n `Argument ${IF.ARG_NAME_UNKNOWN} is required if the argument ${IF.ARG_NAME_CONDITION} is of type logical (i.e., can be true, false or unknown)`\n );\n }\n } else if (providedArgumentTypes[0][1].isSameTypeAs(Type.BOOLEAN)) {\n if (providedArgumentTypes.length > 3) {\n throw new SpuriousFunctionArgumentException(\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n providedArgumentTypes[3][0],\n `Argument ${IF.ARG_NAME_UNKNOWN} is not allowed if the argument ${IF.ARG_NAME_CONDITION} is of type boolean (i.e., can only be true or false)`\n );\n }\n }\n }\n\n protected transformArguments(\n callingExpr: Expr<any>,\n evaluatedArguments: Map<string, ExprEvalResult<ExpressionValue>>\n ) {\n const cond = evaluatedArguments.get(IF.ARG_NAME_CONDITION);\n if (isExprEvalSuccess(cond)) {\n if ((cond.result as Value<any>).getType().isSameTypeAs(Type.LOGICAL)) {\n if (evaluatedArguments.size < 4) {\n evaluatedArguments.set(\n IF.ARG_NAME_UNKNOWN,\n new ExprEvalMissingRequiredFunctionArgumentErrorObj(\n ExprKind.FUNCTION_ARGUMENTS,\n `Argument ${IF.ARG_NAME_UNKNOWN} is required if the argument ${IF.ARG_NAME_CONDITION} is of type logical (i.e., can be true, false or unknown)`,\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n callingExpr.getTextSpan()\n )\n );\n }\n } else if (cond.result.getType().isSameTypeAs(Type.BOOLEAN)) {\n if (evaluatedArguments.size > 3) {\n evaluatedArguments.set(\n IF.ARG_NAME_UNKNOWN,\n new ExprEvalSpuriousFunctionArgumentErrorObj(\n `Argument ${IF.ARG_NAME_UNKNOWN} is not allowed if the argument ${IF.ARG_NAME_CONDITION} is of type boolean (i.e., can only be true or false)`,\n this.name,\n IF.ARG_NAME_UNKNOWN,\n 3,\n callingExpr.getTextSpan()\n )\n );\n }\n }\n }\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const condition = evaluatedArguments.get(IF.ARG_NAME_CONDITION) as\n | LogicalValue\n | BooleanValue;\n if (condition.isTrue()) {\n const thenValue = evaluatedArguments.get(IF.ARG_NAME_THEN);\n return new ExprEvalSuccessObj(thenValue);\n } else if (condition.isFalse()) {\n const elseValue = evaluatedArguments.get(IF.ARG_NAME_ELSE);\n return new ExprEvalSuccessObj(elseValue);\n } else if (LogicalValue.isUnknown(condition.getValue())) {\n const unknownValue = evaluatedArguments.get(IF.ARG_NAME_UNKNOWN);\n return new ExprEvalSuccessObj(unknownValue);\n }\n return new ExprEvalFunctionEvaluationErrorObj(\n ExprKind.FUNCTION,\n ExprEvalStatus.ERROR,\n \"Cannot handle value of condtition: \" + JSON.stringify(condition),\n this.name,\n callingExpr.getTextSpan()\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/function/impl/NOT.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAElC,+DAA6E;AAG7E,kFAA4E;AAG5E,MAAa,GAAI,SAAQ,cAAI;IAG3B;QACE,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,oDAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAE9B,CAAC;QACjB,OAAO,IAAI,sCAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;;AAnBH,kBAoBC;AAnByB,WAAO,GAAG,KAAK,CAAC","file":"expression/function/impl/NOT.js","sourcesContent":["import { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean\";\nimport { LogicalValue } from \"../../../value/LogicalValue\";\n\nexport class NOT extends Func {\n private static readonly KEY_ARG = \"arg\";\n\n constructor() {\n super(\"NOT\", [new FuncArgLogicalOrBoolean(true, NOT.KEY_ARG)]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return argumentTypes[0];\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const arg = evaluatedArguments.get(NOT.KEY_ARG) as\n | BooleanValue\n | LogicalValue;\n return new ExprEvalSuccessObj(arg.not());\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/expression/function/impl/NOT.ts"],"names":[],"mappings":";;;AACA,wCAAkC;AAElC,+DAA6E;AAG7E,kFAA4E;AAG5E,MAAa,GAAI,SAAQ,cAAI;IAG3B;QACE,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,oDAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAE9B,CAAC;QACjB,OAAO,IAAI,sCAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;;AAnBH,kBAoBC;AAnByB,WAAO,GAAG,KAAK,CAAC","file":"expression/function/impl/NOT.js","sourcesContent":["import { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgLogicalOrBoolean } from \"../arg/FuncArgLogicalOrBoolean.js\";\nimport { LogicalValue } from \"../../../value/LogicalValue.js\";\n\nexport class NOT extends Func {\n private static readonly KEY_ARG = \"arg\";\n\n constructor() {\n super(\"NOT\", [new FuncArgLogicalOrBoolean(true, NOT.KEY_ARG)]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return argumentTypes[0];\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const arg = evaluatedArguments.get(NOT.KEY_ARG) as\n | BooleanValue\n | LogicalValue;\n return new ExprEvalSuccessObj(arg.not());\n }\n}\n"]}