ifc-expressions 0.2.2 → 0.3.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 (322) hide show
  1. package/dist/ExprVisitor.d.ts +7 -3
  2. package/dist/IfcExpression.d.ts +27 -24
  3. package/dist/IfcExpressionErrorListener.d.ts +1 -1
  4. package/dist/IfcExpressionUtils.d.ts +2 -0
  5. package/dist/cjs/ExprVisitor.js +70 -36
  6. package/dist/cjs/ExprVisitor.js.map +1 -1
  7. package/dist/cjs/IfcExpression.js +42 -41
  8. package/dist/cjs/IfcExpression.js.map +1 -1
  9. package/dist/cjs/IfcExpressionErrorListener.js +4 -4
  10. package/dist/cjs/IfcExpressionErrorListener.js.map +1 -1
  11. package/dist/cjs/IfcExpressionUtils.js +12 -0
  12. package/dist/cjs/IfcExpressionUtils.js.map +1 -0
  13. package/dist/cjs/SyntaxErrorException.js +2 -2
  14. package/dist/cjs/SyntaxErrorException.js.map +1 -1
  15. package/dist/cjs/context/IfcElementAccessor.js +8 -8
  16. package/dist/cjs/context/IfcElementAccessor.js.map +1 -1
  17. package/dist/cjs/context/IfcExpressionContext.js.map +1 -1
  18. package/dist/cjs/context/IfcPropertyAccessor.js +2 -2
  19. package/dist/cjs/context/IfcPropertyAccessor.js.map +1 -1
  20. package/dist/cjs/context/IfcPropertySetAccessor.js +2 -2
  21. package/dist/cjs/context/IfcPropertySetAccessor.js.map +1 -1
  22. package/dist/cjs/context/IfcRootObjectAccessor.js +4 -4
  23. package/dist/cjs/context/IfcRootObjectAccessor.js.map +1 -1
  24. package/dist/cjs/context/IfcTypeObjectAccessor.js +4 -4
  25. package/dist/cjs/context/IfcTypeObjectAccessor.js.map +1 -1
  26. package/dist/cjs/context/NamedObjectAccessor.js +3 -3
  27. package/dist/cjs/context/NamedObjectAccessor.js.map +1 -1
  28. package/dist/cjs/context/ObjectAccessor.js +9 -0
  29. package/dist/cjs/context/ObjectAccessor.js.map +1 -1
  30. package/dist/cjs/expression/Expr.js.map +1 -1
  31. package/dist/cjs/expression/Expr0.js +18 -2
  32. package/dist/cjs/expression/Expr0.js.map +1 -1
  33. package/dist/cjs/expression/Expr1.js +46 -2
  34. package/dist/cjs/expression/Expr1.js.map +1 -1
  35. package/dist/cjs/expression/Expr2.js +48 -2
  36. package/dist/cjs/expression/Expr2.js.map +1 -1
  37. package/dist/cjs/expression/Expr2LeftBeforeRight.js +45 -0
  38. package/dist/cjs/expression/Expr2LeftBeforeRight.js.map +1 -0
  39. package/dist/cjs/expression/ExprBase.js +20 -0
  40. package/dist/cjs/expression/ExprBase.js.map +1 -0
  41. package/dist/cjs/expression/ExprEvalResult.js +165 -0
  42. package/dist/cjs/expression/ExprEvalResult.js.map +1 -0
  43. package/dist/cjs/expression/ExprKind.js +24 -0
  44. package/dist/cjs/expression/ExprKind.js.map +1 -0
  45. package/dist/cjs/expression/IfcExpressionEvaluationException.js.map +1 -1
  46. package/dist/cjs/expression/LiteralExpr.js +25 -0
  47. package/dist/cjs/expression/LiteralExpr.js.map +1 -0
  48. package/dist/cjs/expression/LocalContextKeys.js +7 -0
  49. package/dist/cjs/expression/LocalContextKeys.js.map +1 -0
  50. package/dist/cjs/expression/function/Func.js +93 -0
  51. package/dist/cjs/expression/function/Func.js.map +1 -0
  52. package/dist/cjs/expression/function/FuncArg.js +33 -0
  53. package/dist/cjs/expression/function/FuncArg.js.map +1 -0
  54. package/dist/cjs/expression/function/FunctionExpr.js +33 -0
  55. package/dist/cjs/expression/function/FunctionExpr.js.map +1 -0
  56. package/dist/cjs/expression/function/IfcExpressionFunctionConfigException.js +10 -0
  57. package/dist/cjs/expression/function/IfcExpressionFunctionConfigException.js.map +1 -0
  58. package/dist/cjs/expression/function/IfcExpressionFunctions.js +26 -0
  59. package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -0
  60. package/dist/cjs/expression/function/arg/FuncArgBase.js +34 -0
  61. package/dist/cjs/expression/function/arg/FuncArgBase.js.map +1 -0
  62. package/dist/cjs/expression/function/arg/FuncArgInt.js +25 -0
  63. package/dist/cjs/expression/function/arg/FuncArgInt.js.map +1 -0
  64. package/dist/cjs/expression/function/arg/FuncArgNumeric.js +22 -0
  65. package/dist/cjs/expression/function/arg/FuncArgNumeric.js.map +1 -0
  66. package/dist/cjs/expression/function/impl/MAP.js +77 -0
  67. package/dist/cjs/expression/function/impl/MAP.js.map +1 -0
  68. package/dist/cjs/expression/function/impl/ROUND.js +29 -0
  69. package/dist/cjs/expression/function/impl/ROUND.js.map +1 -0
  70. package/dist/cjs/expression/numeric/DivideExpr.js +11 -9
  71. package/dist/cjs/expression/numeric/DivideExpr.js.map +1 -1
  72. package/dist/cjs/expression/numeric/MinusExpr.js +7 -9
  73. package/dist/cjs/expression/numeric/MinusExpr.js.map +1 -1
  74. package/dist/cjs/expression/numeric/MultiplyExpr.js +7 -9
  75. package/dist/cjs/expression/numeric/MultiplyExpr.js.map +1 -1
  76. package/dist/cjs/expression/numeric/NumParenthesisExpr.js +6 -5
  77. package/dist/cjs/expression/numeric/NumParenthesisExpr.js.map +1 -1
  78. package/dist/cjs/expression/numeric/NumericLiteralExpr.js +5 -4
  79. package/dist/cjs/expression/numeric/NumericLiteralExpr.js.map +1 -1
  80. package/dist/cjs/expression/numeric/PlusExpr.js +7 -9
  81. package/dist/cjs/expression/numeric/PlusExpr.js.map +1 -1
  82. package/dist/cjs/expression/reference/AttributeReferenceExpr.js +21 -7
  83. package/dist/cjs/expression/reference/AttributeReferenceExpr.js.map +1 -1
  84. package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js +5 -4
  85. package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -1
  86. package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js +19 -5
  87. package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -1
  88. package/dist/cjs/expression/reference/NestedObjectChainExpr.js +33 -8
  89. package/dist/cjs/expression/reference/NestedObjectChainExpr.js.map +1 -1
  90. package/dist/cjs/expression/reference/ObjectReferenceExpr.js.map +1 -1
  91. package/dist/cjs/expression/reference/PropObjectReferenceExpr.js +5 -4
  92. package/dist/cjs/expression/reference/PropObjectReferenceExpr.js.map +1 -1
  93. package/dist/cjs/expression/string/StringConcatExpr.js +7 -6
  94. package/dist/cjs/expression/string/StringConcatExpr.js.map +1 -1
  95. package/dist/cjs/expression/string/StringLiteralExpr.js +5 -4
  96. package/dist/cjs/expression/string/StringLiteralExpr.js.map +1 -1
  97. package/dist/cjs/expression/structure/ArrayExpr.js +26 -0
  98. package/dist/cjs/expression/structure/ArrayExpr.js.map +1 -0
  99. package/dist/cjs/gen/parser/IfcExpressionLexer.js +142 -0
  100. package/dist/cjs/gen/parser/IfcExpressionLexer.js.map +1 -0
  101. package/dist/cjs/gen/parser/IfcExpressionListener.js.map +1 -0
  102. package/dist/cjs/{parser → gen/parser}/IfcExpressionParser.js +148 -104
  103. package/dist/cjs/gen/parser/IfcExpressionParser.js.map +1 -0
  104. package/dist/cjs/gen/parser/IfcExpressionVisitor.js.map +1 -0
  105. package/dist/cjs/value/ArrayValue.js +23 -0
  106. package/dist/cjs/value/ArrayValue.js.map +1 -0
  107. package/dist/cjs/value/BooleanValue.js +12 -3
  108. package/dist/cjs/value/BooleanValue.js.map +1 -1
  109. package/dist/cjs/value/LiteralValue.js.map +1 -1
  110. package/dist/cjs/value/LiteralValueAnyArity.js.map +1 -1
  111. package/dist/cjs/value/LogicalValue.js +14 -3
  112. package/dist/cjs/value/LogicalValue.js.map +1 -1
  113. package/dist/cjs/value/NumericValue.js +16 -7
  114. package/dist/cjs/value/NumericValue.js.map +1 -1
  115. package/dist/cjs/value/PrimitiveValueType.js.map +1 -1
  116. package/dist/cjs/value/ReferenceValue.js +12 -3
  117. package/dist/cjs/value/ReferenceValue.js.map +1 -1
  118. package/dist/cjs/value/StringValue.js +12 -3
  119. package/dist/cjs/value/StringValue.js.map +1 -1
  120. package/dist/cjs/value/Value.js +0 -10
  121. package/dist/cjs/value/Value.js.map +1 -1
  122. package/dist/context/IfcElementAccessor.d.ts +6 -6
  123. package/dist/context/IfcExpressionContext.d.ts +2 -2
  124. package/dist/context/IfcPropertyAccessor.d.ts +4 -4
  125. package/dist/context/IfcPropertySetAccessor.d.ts +4 -4
  126. package/dist/context/IfcRootObjectAccessor.d.ts +2 -2
  127. package/dist/context/IfcTypeObjectAccessor.d.ts +4 -4
  128. package/dist/context/NamedObjectAccessor.d.ts +2 -2
  129. package/dist/context/ObjectAccessor.d.ts +2 -1
  130. package/dist/expression/Expr.d.ts +5 -2
  131. package/dist/expression/Expr0.d.ts +9 -5
  132. package/dist/expression/Expr1.d.ts +20 -5
  133. package/dist/expression/Expr2.d.ts +15 -6
  134. package/dist/expression/Expr2LeftBeforeRight.d.ts +14 -0
  135. package/dist/expression/ExprBase.d.ts +11 -0
  136. package/dist/expression/ExprEvalResult.d.ts +125 -0
  137. package/dist/expression/ExprKind.d.ts +19 -0
  138. package/dist/expression/LiteralExpr.d.ts +11 -0
  139. package/dist/expression/LocalContextKeys.d.ts +3 -0
  140. package/dist/expression/function/Func.d.ts +30 -0
  141. package/dist/expression/function/FuncArg.d.ts +18 -0
  142. package/dist/expression/function/FunctionExpr.d.ts +13 -0
  143. package/dist/expression/function/IfcExpressionFunctionConfigException.d.ts +3 -0
  144. package/dist/expression/function/IfcExpressionFunctions.d.ts +7 -0
  145. package/dist/expression/function/arg/FuncArgBase.d.ts +19 -0
  146. package/dist/expression/function/arg/FuncArgInt.d.ts +8 -0
  147. package/dist/expression/function/arg/FuncArgNumeric.d.ts +8 -0
  148. package/dist/expression/function/impl/MAP.d.ts +10 -0
  149. package/dist/expression/function/impl/ROUND.d.ts +9 -0
  150. package/dist/expression/numeric/DivideExpr.d.ts +8 -6
  151. package/dist/expression/numeric/MinusExpr.d.ts +7 -6
  152. package/dist/expression/numeric/MultiplyExpr.d.ts +7 -6
  153. package/dist/expression/numeric/NumParenthesisExpr.d.ts +6 -6
  154. package/dist/expression/numeric/NumericLiteralExpr.d.ts +6 -5
  155. package/dist/expression/numeric/PlusExpr.d.ts +6 -6
  156. package/dist/expression/reference/AttributeReferenceExpr.d.ts +12 -8
  157. package/dist/expression/reference/ElemObjectReferenceExpr.d.ts +5 -5
  158. package/dist/expression/reference/NestedObjectChainEndExpr.d.ts +7 -6
  159. package/dist/expression/reference/NestedObjectChainExpr.d.ts +11 -8
  160. package/dist/expression/reference/ObjectReferenceExpr.d.ts +2 -2
  161. package/dist/expression/reference/PropObjectReferenceExpr.d.ts +5 -5
  162. package/dist/expression/string/StringConcatExpr.d.ts +6 -6
  163. package/dist/expression/string/StringLiteralExpr.d.ts +5 -5
  164. package/dist/expression/structure/ArrayExpr.d.ts +11 -0
  165. package/dist/{parser → gen/parser}/IfcExpressionLexer.d.ts +10 -9
  166. package/dist/{parser → gen/parser}/IfcExpressionParser.d.ts +10 -9
  167. package/dist/mjs/ExprVisitor.js +57 -23
  168. package/dist/mjs/ExprVisitor.js.map +1 -1
  169. package/dist/mjs/IfcExpression.js +21 -22
  170. package/dist/mjs/IfcExpression.js.map +1 -1
  171. package/dist/mjs/IfcExpressionErrorListener.js +3 -3
  172. package/dist/mjs/IfcExpressionErrorListener.js.map +1 -1
  173. package/dist/mjs/IfcExpressionUtils.js +7 -0
  174. package/dist/mjs/IfcExpressionUtils.js.map +1 -0
  175. package/dist/mjs/SyntaxErrorException.js +2 -2
  176. package/dist/mjs/SyntaxErrorException.js.map +1 -1
  177. package/dist/mjs/context/IfcElementAccessor.js +6 -6
  178. package/dist/mjs/context/IfcElementAccessor.js.map +1 -1
  179. package/dist/mjs/context/IfcExpressionContext.js.map +1 -1
  180. package/dist/mjs/context/IfcPropertyAccessor.js +1 -1
  181. package/dist/mjs/context/IfcPropertyAccessor.js.map +1 -1
  182. package/dist/mjs/context/IfcPropertySetAccessor.js +1 -1
  183. package/dist/mjs/context/IfcPropertySetAccessor.js.map +1 -1
  184. package/dist/mjs/context/IfcRootObjectAccessor.js +2 -2
  185. package/dist/mjs/context/IfcRootObjectAccessor.js.map +1 -1
  186. package/dist/mjs/context/IfcTypeObjectAccessor.js +3 -3
  187. package/dist/mjs/context/IfcTypeObjectAccessor.js.map +1 -1
  188. package/dist/mjs/context/NamedObjectAccessor.js +1 -1
  189. package/dist/mjs/context/NamedObjectAccessor.js.map +1 -1
  190. package/dist/mjs/context/ObjectAccessor.js +7 -1
  191. package/dist/mjs/context/ObjectAccessor.js.map +1 -1
  192. package/dist/mjs/expression/Expr.js.map +1 -1
  193. package/dist/mjs/expression/Expr0.js +18 -2
  194. package/dist/mjs/expression/Expr0.js.map +1 -1
  195. package/dist/mjs/expression/Expr1.js +46 -2
  196. package/dist/mjs/expression/Expr1.js.map +1 -1
  197. package/dist/mjs/expression/Expr2.js +48 -2
  198. package/dist/mjs/expression/Expr2.js.map +1 -1
  199. package/dist/mjs/expression/Expr2LeftBeforeRight.js +41 -0
  200. package/dist/mjs/expression/Expr2LeftBeforeRight.js.map +1 -0
  201. package/dist/mjs/expression/ExprBase.js +16 -0
  202. package/dist/mjs/expression/ExprBase.js.map +1 -0
  203. package/dist/mjs/expression/ExprEvalResult.js +144 -0
  204. package/dist/mjs/expression/ExprEvalResult.js.map +1 -0
  205. package/dist/mjs/expression/ExprKind.js +21 -0
  206. package/dist/mjs/expression/ExprKind.js.map +1 -0
  207. package/dist/mjs/expression/LiteralExpr.js +21 -0
  208. package/dist/mjs/expression/LiteralExpr.js.map +1 -0
  209. package/dist/mjs/expression/LocalContextKeys.js +4 -0
  210. package/dist/mjs/expression/LocalContextKeys.js.map +1 -0
  211. package/dist/mjs/expression/function/Func.js +89 -0
  212. package/dist/mjs/expression/function/Func.js.map +1 -0
  213. package/dist/mjs/expression/function/FuncArg.js +29 -0
  214. package/dist/mjs/expression/function/FuncArg.js.map +1 -0
  215. package/dist/mjs/expression/function/FunctionExpr.js +29 -0
  216. package/dist/mjs/expression/function/FunctionExpr.js.map +1 -0
  217. package/dist/mjs/expression/function/IfcExpressionFunctionConfigException.js +6 -0
  218. package/dist/mjs/expression/function/IfcExpressionFunctionConfigException.js.map +1 -0
  219. package/dist/mjs/expression/function/IfcExpressionFunctions.js +22 -0
  220. package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -0
  221. package/dist/mjs/expression/function/arg/FuncArgBase.js +30 -0
  222. package/dist/mjs/expression/function/arg/FuncArgBase.js.map +1 -0
  223. package/dist/mjs/expression/function/arg/FuncArgInt.js +21 -0
  224. package/dist/mjs/expression/function/arg/FuncArgInt.js.map +1 -0
  225. package/dist/mjs/expression/function/arg/FuncArgNumeric.js +18 -0
  226. package/dist/mjs/expression/function/arg/FuncArgNumeric.js.map +1 -0
  227. package/dist/mjs/expression/function/impl/MAP.js +73 -0
  228. package/dist/mjs/expression/function/impl/MAP.js.map +1 -0
  229. package/dist/mjs/expression/function/impl/ROUND.js +25 -0
  230. package/dist/mjs/expression/function/impl/ROUND.js.map +1 -0
  231. package/dist/mjs/expression/numeric/DivideExpr.js +10 -8
  232. package/dist/mjs/expression/numeric/DivideExpr.js.map +1 -1
  233. package/dist/mjs/expression/numeric/MinusExpr.js +6 -8
  234. package/dist/mjs/expression/numeric/MinusExpr.js.map +1 -1
  235. package/dist/mjs/expression/numeric/MultiplyExpr.js +6 -8
  236. package/dist/mjs/expression/numeric/MultiplyExpr.js.map +1 -1
  237. package/dist/mjs/expression/numeric/NumParenthesisExpr.js +5 -4
  238. package/dist/mjs/expression/numeric/NumParenthesisExpr.js.map +1 -1
  239. package/dist/mjs/expression/numeric/NumericLiteralExpr.js +5 -4
  240. package/dist/mjs/expression/numeric/NumericLiteralExpr.js.map +1 -1
  241. package/dist/mjs/expression/numeric/PlusExpr.js +6 -8
  242. package/dist/mjs/expression/numeric/PlusExpr.js.map +1 -1
  243. package/dist/mjs/expression/reference/AttributeReferenceExpr.js +20 -6
  244. package/dist/mjs/expression/reference/AttributeReferenceExpr.js.map +1 -1
  245. package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js +4 -3
  246. package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -1
  247. package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js +19 -5
  248. package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -1
  249. package/dist/mjs/expression/reference/NestedObjectChainExpr.js +33 -8
  250. package/dist/mjs/expression/reference/NestedObjectChainExpr.js.map +1 -1
  251. package/dist/mjs/expression/reference/ObjectReferenceExpr.js.map +1 -1
  252. package/dist/mjs/expression/reference/PropObjectReferenceExpr.js +4 -3
  253. package/dist/mjs/expression/reference/PropObjectReferenceExpr.js.map +1 -1
  254. package/dist/mjs/expression/string/StringConcatExpr.js +6 -5
  255. package/dist/mjs/expression/string/StringConcatExpr.js.map +1 -1
  256. package/dist/mjs/expression/string/StringLiteralExpr.js +5 -4
  257. package/dist/mjs/expression/string/StringLiteralExpr.js.map +1 -1
  258. package/dist/mjs/expression/structure/ArrayExpr.js +22 -0
  259. package/dist/mjs/expression/structure/ArrayExpr.js.map +1 -0
  260. package/dist/mjs/gen/parser/IfcExpressionLexer.js +140 -0
  261. package/dist/mjs/gen/parser/IfcExpressionLexer.js.map +1 -0
  262. package/dist/mjs/gen/parser/IfcExpressionListener.js.map +1 -0
  263. package/dist/mjs/{parser → gen/parser}/IfcExpressionParser.js +148 -104
  264. package/dist/mjs/gen/parser/IfcExpressionParser.js.map +1 -0
  265. package/dist/mjs/gen/parser/IfcExpressionVisitor.js.map +1 -0
  266. package/dist/mjs/value/ArrayValue.js +19 -0
  267. package/dist/mjs/value/ArrayValue.js.map +1 -0
  268. package/dist/mjs/value/BooleanValue.js +12 -3
  269. package/dist/mjs/value/BooleanValue.js.map +1 -1
  270. package/dist/mjs/value/LiteralValue.js.map +1 -1
  271. package/dist/mjs/value/LiteralValueAnyArity.js.map +1 -1
  272. package/dist/mjs/value/LogicalValue.js +14 -3
  273. package/dist/mjs/value/LogicalValue.js.map +1 -1
  274. package/dist/mjs/value/NumericValue.js +16 -4
  275. package/dist/mjs/value/NumericValue.js.map +1 -1
  276. package/dist/mjs/value/ReferenceValue.js +12 -3
  277. package/dist/mjs/value/ReferenceValue.js.map +1 -1
  278. package/dist/mjs/value/StringValue.js +12 -3
  279. package/dist/mjs/value/StringValue.js.map +1 -1
  280. package/dist/mjs/value/Value.js +1 -8
  281. package/dist/mjs/value/Value.js.map +1 -1
  282. package/dist/value/ArrayValue.d.ts +12 -0
  283. package/dist/value/BooleanValue.d.ts +9 -2
  284. package/dist/value/LiteralValue.d.ts +7 -6
  285. package/dist/value/LiteralValueAnyArity.d.ts +2 -2
  286. package/dist/value/LogicalValue.d.ts +9 -2
  287. package/dist/value/NumericValue.d.ts +12 -5
  288. package/dist/value/ReferenceValue.d.ts +9 -2
  289. package/dist/value/StringValue.d.ts +9 -2
  290. package/dist/value/Value.d.ts +3 -4
  291. package/package.json +4 -3
  292. package/dist/cjs/expression/ArrayExpr.js +0 -3
  293. package/dist/cjs/expression/ArrayExpr.js.map +0 -1
  294. package/dist/cjs/expression/numeric/MultiplyByExpr.js +0 -18
  295. package/dist/cjs/expression/numeric/MultiplyByExpr.js.map +0 -1
  296. package/dist/cjs/parser/IfcExpressionLexer.js +0 -140
  297. package/dist/cjs/parser/IfcExpressionLexer.js.map +0 -1
  298. package/dist/cjs/parser/IfcExpressionListener.js.map +0 -1
  299. package/dist/cjs/parser/IfcExpressionParser.js.map +0 -1
  300. package/dist/cjs/parser/IfcExpressionVisitor.js.map +0 -1
  301. package/dist/cjs/utils.js +0 -12
  302. package/dist/cjs/utils.js.map +0 -1
  303. package/dist/expression/ArrayExpr.d.ts +0 -3
  304. package/dist/expression/numeric/MultiplyByExpr.d.ts +0 -8
  305. package/dist/mjs/expression/ArrayExpr.js +0 -2
  306. package/dist/mjs/expression/ArrayExpr.js.map +0 -1
  307. package/dist/mjs/expression/numeric/MultiplyByExpr.js +0 -14
  308. package/dist/mjs/expression/numeric/MultiplyByExpr.js.map +0 -1
  309. package/dist/mjs/parser/IfcExpressionLexer.js +0 -138
  310. package/dist/mjs/parser/IfcExpressionLexer.js.map +0 -1
  311. package/dist/mjs/parser/IfcExpressionListener.js.map +0 -1
  312. package/dist/mjs/parser/IfcExpressionParser.js.map +0 -1
  313. package/dist/mjs/parser/IfcExpressionVisitor.js.map +0 -1
  314. package/dist/mjs/utils.js +0 -7
  315. package/dist/mjs/utils.js.map +0 -1
  316. package/dist/utils.d.ts +0 -2
  317. /package/dist/cjs/{parser → gen/parser}/IfcExpressionListener.js +0 -0
  318. /package/dist/cjs/{parser → gen/parser}/IfcExpressionVisitor.js +0 -0
  319. /package/dist/{parser → gen/parser}/IfcExpressionListener.d.ts +0 -0
  320. /package/dist/{parser → gen/parser}/IfcExpressionVisitor.d.ts +0 -0
  321. /package/dist/mjs/{parser → gen/parser}/IfcExpressionListener.js +0 -0
  322. /package/dist/mjs/{parser → gen/parser}/IfcExpressionVisitor.js +0 -0
@@ -1,5 +1,5 @@
1
- import { ObjectAccessor } from "./ObjectAccessor";
2
- import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity";
1
+ import { ObjectAccessor } from "./ObjectAccessor.js";
2
+ import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity.js";
3
3
  export declare abstract class NamedObjectAccessor implements ObjectAccessor {
4
4
  abstract getName(): string;
5
5
  abstract getDescription(): string;
@@ -1,4 +1,4 @@
1
- import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity";
1
+ import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity.js";
2
2
  export interface ObjectAccessor {
3
3
  /**
4
4
  * If there is a nested object with the specified name (.e.g the 'pset' in $prop.pset),
@@ -14,3 +14,4 @@ export interface ObjectAccessor {
14
14
  listNestedObjects(): Array<string>;
15
15
  listAttributes(): Array<string>;
16
16
  }
17
+ export declare function isObjectAccessor(arg: any): arg is ObjectAccessor;
@@ -1,4 +1,7 @@
1
- import { IfcExpressionContext } from "../context/IfcExpressionContext";
1
+ import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
2
+ import { ExprKind } from "./ExprKind";
3
+ import { ExprEvalResult } from "./ExprEvalResult";
2
4
  export interface Expr<T> {
3
- evaluate(ctx: IfcExpressionContext): T;
5
+ evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<T>;
6
+ getKind(): ExprKind;
4
7
  }
@@ -1,6 +1,10 @@
1
- import { Expr } from "./Expr";
2
- import { IfcExpressionContext } from "../context/IfcExpressionContext";
3
- export declare abstract class Expr0<E> implements Expr<E> {
4
- protected constructor();
5
- abstract evaluate(ctx: IfcExpressionContext): E;
1
+ import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
2
+ import { ExprKind } from "./ExprKind";
3
+ import { ExprBase } from "./ExprBase";
4
+ import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult";
5
+ export declare abstract class Expr0<E> extends ExprBase<E> {
6
+ protected constructor(kind: ExprKind);
7
+ protected abstract doEvaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): E | ExprEvalError;
8
+ evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<E>;
9
+ protected handleError(error: any): ExprEvalError;
6
10
  }
@@ -1,7 +1,22 @@
1
+ import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
2
+ import { ExprKind } from "./ExprKind";
3
+ import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult";
4
+ import { ExprBase } from "./ExprBase";
1
5
  import { Expr } from "./Expr";
2
- import { IfcExpressionContext } from "../context/IfcExpressionContext";
3
- export declare abstract class Expr1<V, E> implements Expr<E> {
4
- readonly value: V;
5
- protected constructor(value: V);
6
- abstract evaluate(ctx: IfcExpressionContext): E;
6
+ export declare abstract class Expr1<V, E> extends ExprBase<E> {
7
+ readonly value: Expr<V>;
8
+ protected constructor(exprKind: ExprKind, value: Expr<V>);
9
+ protected abstract calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, subExpressionResult: V): E | ExprEvalError;
10
+ /**
11
+ * Override to generate a more specific error result.
12
+ * @param ctx
13
+ * @param localCtx
14
+ * @param subExpressionResult
15
+ * @protected
16
+ */
17
+ protected obtainResultForSubExpressionError(ctx: IfcExpressionContext, localCtx: Map<string, any>, subExpressionResult: ExprEvalError): ExprEvalResult<E>;
18
+ private makeErrorOrCalculate;
19
+ protected onBeforeRecusion(ctx: IfcExpressionContext, localCtx: Map<string, any>): undefined | ExprEvalError;
20
+ evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<E>;
21
+ protected handleError(error: any, subResult: ExprEvalResult<V>): ExprEvalError;
7
22
  }
@@ -1,8 +1,17 @@
1
+ import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
2
+ import { ExprBase } from "./ExprBase";
3
+ import { ExprKind } from "./ExprKind";
4
+ import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult";
1
5
  import { Expr } from "./Expr";
2
- import { IfcExpressionContext } from "../context/IfcExpressionContext";
3
- export declare abstract class Expr2<L, R, E> implements Expr<E> {
4
- readonly left: L;
5
- readonly right: R;
6
- protected constructor(left: L, right: R);
7
- abstract evaluate(ctx: IfcExpressionContext): E;
6
+ export declare abstract class Expr2<L, R, E> extends ExprBase<E> {
7
+ readonly left: Expr<L>;
8
+ readonly right: Expr<R>;
9
+ protected constructor(exprKind: ExprKind, left: Expr<L>, right: Expr<R>);
10
+ protected abstract calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftOperand: L, rightOperand: R): E | ExprEvalError;
11
+ protected onBeforeRecursion(ctx: IfcExpressionContext, localCtx: Map<string, any>): void;
12
+ protected onAfterLeftRecursion(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: L): void;
13
+ evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<E>;
14
+ protected makeResultForRightSubExprError(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: ExprEvalResult<L>, rightResult: ExprEvalError): ExprEvalResult<E>;
15
+ protected makeErrorForLeftSubExprError(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: ExprEvalError): ExprEvalError;
16
+ protected handleError(error: any, leftResult: ExprEvalResult<L>, rightResult: ExprEvalResult<R>): ExprEvalError;
8
17
  }
@@ -0,0 +1,14 @@
1
+ import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
2
+ import { ExprBase } from "./ExprBase";
3
+ import { ExprKind } from "./ExprKind";
4
+ import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult";
5
+ import { Expr } from "./Expr";
6
+ export declare abstract class Expr2LeftBeforeRight<L, R, E> extends ExprBase<E> {
7
+ readonly left: Expr<L>;
8
+ readonly right: Expr<R>;
9
+ protected constructor(exprKind: ExprKind, left: Expr<L>, right: Expr<R>);
10
+ protected abstract doEvaluate(ctx: IfcExpressionContext, leftOperand: L, rightOperand: R): E | ExprEvalError;
11
+ protected abstract handleLeftResult(leftResult: ExprEvalResult<L>): any;
12
+ evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<E>;
13
+ protected handleError(error: any, leftResult: ExprEvalResult<L>, rightResult: ExprEvalResult<R>): ExprEvalError;
14
+ }
@@ -0,0 +1,11 @@
1
+ import { Expr } from "./Expr";
2
+ import { IfcExpressionContext } from "../context/IfcExpressionContext";
3
+ import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult";
4
+ import { ExprKind } from "./ExprKind";
5
+ export declare abstract class ExprBase<T> implements Expr<T> {
6
+ private readonly exprKind;
7
+ constructor(exprKind: ExprKind);
8
+ abstract evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<T>;
9
+ getKind(): ExprKind;
10
+ protected wrapInResultIfNecessary(result: T | ExprEvalError): ExprEvalResult<T>;
11
+ }
@@ -0,0 +1,125 @@
1
+ import { Expr } from "./Expr";
2
+ import { ExprKind } from "./ExprKind";
3
+ export declare enum ExprEvalStatus {
4
+ SUCCESS = 1000,
5
+ ERROR = 2000,
6
+ UNDEFINED_RESULT = 2001,
7
+ REFERENCE_ERROR = 2010,
8
+ MISSING_OPERAND = 2011,
9
+ MISSING_REQUIRED_FUNCTION_ARGUMENT = 2012,
10
+ UNKNOWN_FUNCTION = 2014,
11
+ CONSEQUENTIAL_ERROR = 2020,
12
+ MATH_ERROR = 2030,
13
+ TYPE_ERROR = 2040
14
+ }
15
+ export declare function isExprEvalStatus(candidate: number): boolean;
16
+ export type ExprEvalResult<T> = ExprEvalSuccess<T> | ExprEvalError;
17
+ export type ExprEvalSuccess<T> = {
18
+ status: ExprEvalStatus;
19
+ result: T;
20
+ };
21
+ export declare function isExprEvalSuccess(arg: any): arg is ExprEvalSuccess<unknown>;
22
+ export declare class ExprEvalSuccessObj<T> {
23
+ readonly result: T;
24
+ readonly status: ExprEvalStatus;
25
+ constructor(result: T);
26
+ }
27
+ export declare class ExprEvalErrorObj {
28
+ readonly status: ExprEvalStatus;
29
+ readonly exprKind: ExprKind;
30
+ readonly message?: string;
31
+ constructor(exprKind: ExprKind, status?: ExprEvalStatus, message?: any);
32
+ }
33
+ export declare function mapErrorObjectToMessage(errorObjectOrMessage: any): string;
34
+ export declare class ExprEvalErrorUndefinedResult extends ExprEvalErrorObj {
35
+ constructor(epxrKind: ExprKind);
36
+ }
37
+ export declare class ExprEvalRefChainErrorObj extends ExprEvalErrorObj {
38
+ readonly errorPathElement: string;
39
+ readonly path: Array<string>;
40
+ constructor(exprKind: ExprKind, status: ExprEvalStatus, errorPathElement: string, message?: any);
41
+ static bubbleUp(error: ExprEvalRefChainError, currentPathElement: any): ExprEvalRefChainError;
42
+ }
43
+ export declare class ExprEvalError1Obj extends ExprEvalErrorObj {
44
+ readonly sub: ExprEvalResult<unknown>;
45
+ constructor(exprKind: ExprKind, sub: ExprEvalResult<unknown>, status: ExprEvalStatus, message?: any);
46
+ }
47
+ export declare class ExprEvalError2Obj extends ExprEvalErrorObj {
48
+ readonly left: ExprEvalResult<unknown>;
49
+ readonly right: ExprEvalResult<unknown>;
50
+ constructor(exprKind: ExprKind, left: ExprEvalResult<unknown>, right: ExprEvalResult<unknown>, status?: ExprEvalStatus, message?: any);
51
+ }
52
+ export declare function isExprEvalError(arg: any): arg is ExprEvalError;
53
+ export type ExprEvalError = ExprEvalUnspecificError | ExprEvalReferencError | ExprEvalErrorUndefinedResult | ExprEvalMissingRequiredFunctionArgumentError | ExprEvalValueError<unknown>;
54
+ type ExprEvalUnspecificError = {
55
+ readonly exprKind: ExprKind;
56
+ readonly status: ExprEvalStatus;
57
+ readonly message?: string;
58
+ };
59
+ export type ExprEvalRefChainError = ExprEvalUnspecificError & {
60
+ readonly errorPathElement: string;
61
+ readonly path: Array<string>;
62
+ };
63
+ export declare function isExprEvalRefChainError(arg: any): arg is ExprEvalRefChainError;
64
+ export type ExprEvalReferencError = ExprEvalUnspecificError & {
65
+ readonly status: ExprEvalStatus.REFERENCE_ERROR;
66
+ readonly expr: Expr<unknown>;
67
+ };
68
+ export type ExprEvalConsequentialError1 = ExprEvalUnspecificError & {
69
+ readonly status: ExprEvalStatus.CONSEQUENTIAL_ERROR;
70
+ readonly exprKind: ExprKind;
71
+ readonly cause: ExprEvalError;
72
+ };
73
+ export declare class ExprEvalConsequentialError1Obj extends ExprEvalErrorObj {
74
+ readonly exprKind: ExprKind;
75
+ readonly cause: ExprEvalResult<unknown>;
76
+ constructor(exprKind: ExprKind, cause: ExprEvalResult<unknown>, message?: any);
77
+ }
78
+ export type ExprEvalConsequentialError2 = ExprEvalUnspecificError & {
79
+ readonly status: ExprEvalStatus.CONSEQUENTIAL_ERROR;
80
+ readonly exprKind: ExprKind;
81
+ readonly leftCause: ExprEvalResult<unknown>;
82
+ readonly rightCause: ExprEvalResult<unknown>;
83
+ };
84
+ export declare class ExprEvalConsequentialError2Obj extends ExprEvalErrorObj {
85
+ readonly leftCause: ExprEvalResult<unknown>;
86
+ readonly rightCause: ExprEvalResult<unknown>;
87
+ constructor(exprKind: ExprKind, leftCause: ExprEvalResult<unknown>, rightCause: ExprEvalResult<unknown>, message?: any);
88
+ }
89
+ export type ExprEvalFunctionEvaluationError = ExprEvalUnspecificError & {
90
+ functionName: string;
91
+ };
92
+ export type ExprEvalMissingRequiredFunctionArgumentError = ExprEvalFunctionEvaluationError & {
93
+ argumentName: string;
94
+ argumentIndex: number;
95
+ };
96
+ export type ExprEvalFunctionEvaluationConsequentialError = ExprEvalFunctionEvaluationError & {
97
+ cause: ExprEvalUnspecificError;
98
+ };
99
+ export declare class ExprEvalFunctionEvaluationErrorObj extends ExprEvalErrorObj {
100
+ readonly functionName: string;
101
+ constructor(exprKind: ExprKind, status: ExprEvalStatus, message: any, functionName: string);
102
+ }
103
+ export declare class ExprEvalFunctionEvaluationConsequentialErrorObj extends ExprEvalFunctionEvaluationErrorObj {
104
+ readonly cause: ExprEvalError;
105
+ constructor(exprKind: ExprKind, functionName: string, cause: ExprEvalError);
106
+ }
107
+ export declare class ExprEvalMissingRequiredFunctionArgumentErrorObj extends ExprEvalFunctionEvaluationErrorObj {
108
+ readonly argumentName: string;
109
+ readonly argumentIndex: number;
110
+ constructor(exprKind: ExprKind, message: any, functionName: string, argumentName: string, argumentIndex: number);
111
+ }
112
+ export type ExprEvalTypeError = ExprEvalUnspecificError & {
113
+ status: ExprEvalStatus.TYPE_ERROR;
114
+ };
115
+ export type ExprEvalValueError<T> = ExprEvalUnspecificError & {
116
+ offendingValue: T;
117
+ };
118
+ export declare class ExprEvalValueErrorObj<T> extends ExprEvalErrorObj {
119
+ readonly offendingValue: T;
120
+ constructor(exprKind: ExprKind, status: ExprEvalStatus, message: any, offendingValue: T);
121
+ }
122
+ export declare class ExprEvalTypeErrorObj<T> extends ExprEvalValueErrorObj<T> {
123
+ constructor(exprKind: ExprKind, message: any, offendingValue: T);
124
+ }
125
+ export {};
@@ -0,0 +1,19 @@
1
+ export declare enum ExprKind {
2
+ NUM_DIVIDE = "NUM_DIVIDE",
3
+ NUM_MULTIPLY = "NUM_MULTIPLY",
4
+ NUM_PLUS = "NUM_PLUS",
5
+ NUM_MINUS = "NUM_MINUS",
6
+ NUM_LITERAL = "NUM_LiTERAL",
7
+ NUM_PARENTHESIS = "NUM_PARENTHESIS",
8
+ REF_ATTRIBUTE = "REF_ATTRIBUTE",
9
+ REF_ELEMENT = "REF_ELEMENT",
10
+ REF_NESTED_OBJECT_CHAIN_END = "REF_NESTED_OBJECT_CHAIN_END",
11
+ REF_NESTED_OBJECT_CHAIN = "REF_NESTED_OBJECT_CHAIN ",
12
+ REF_OBJECT = "REF_OBJECT",
13
+ REF_PROPERTY = "REF_PROPERTY",
14
+ STR_CONCAT = "STR_CONCAT",
15
+ STR_LITERAL = "STR_LITERAL",
16
+ FUNCTION_ARGUMENTS = "FUNCTION_ARGUMENTS",
17
+ FUNCTION = "FUNCTION",
18
+ ARRAY = "ARRAY"
19
+ }
@@ -0,0 +1,11 @@
1
+ import { IfcExpressionContext } from "../context/IfcExpressionContext.js";
2
+ import { ExprKind } from "./ExprKind";
3
+ import { ExprEvalError, ExprEvalResult } from "./ExprEvalResult";
4
+ import { ExprBase } from "./ExprBase";
5
+ export declare abstract class LiteralExpr<V, E> extends ExprBase<E> {
6
+ readonly value: V;
7
+ protected constructor(exprKind: ExprKind, value: V);
8
+ protected abstract calculateResult(ctx: IfcExpressionContext): E | ExprEvalError;
9
+ evaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalResult<E>;
10
+ protected handleError(error: any): ExprEvalError;
11
+ }
@@ -0,0 +1,3 @@
1
+ export declare const LocalContextKeys: Readonly<{
2
+ OBJECT_ACCESSOR: "OBJECT_ACCESSOR";
3
+ }>;
@@ -0,0 +1,30 @@
1
+ import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity";
2
+ import { FuncArg } from "./FuncArg";
3
+ import { ExprEvalError, ExprEvalResult } from "../ExprEvalResult";
4
+ export declare abstract class Func {
5
+ protected name: string;
6
+ protected formalArguments: Array<FuncArg<unknown>>;
7
+ constructor(name: string, args: Array<FuncArg<unknown>>);
8
+ evaluate(funcArgs: Array<ExprEvalResult<LiteralValueAnyArity>>): ExprEvalResult<LiteralValueAnyArity>;
9
+ /**
10
+ * Subclasses must provide the funcation evaluation code here.
11
+ * @param evaluatedArguments
12
+ * @protected
13
+ */
14
+ protected abstract calculateResult(evaluatedArguments: Map<string, LiteralValueAnyArity>): ExprEvalResult<LiteralValueAnyArity>;
15
+ /**
16
+ * Override to transform individual arguments if needed. After this step, if any of the ExprEvalResult objects in the
17
+ * returned array is an ExprEvalError, the function evaluation fails.
18
+ * @param evaluatedArguments
19
+ * @protected
20
+ */
21
+ protected transformArguments(evaluatedArguments: Map<string, ExprEvalResult<LiteralValueAnyArity>>): Map<string, ExprEvalResult<LiteralValueAnyArity>>;
22
+ /**
23
+ * Gets the argument values from the list of provided arguments in the form of 'name' -> ExprEvalResult (which may contain errors).
24
+ * Generates an error if a required value is missing.
25
+ * @param provided
26
+ * @protected
27
+ */
28
+ protected getArgumentValues(provided: Array<ExprEvalResult<LiteralValueAnyArity>>): Map<string, ExprEvalResult<LiteralValueAnyArity>> | ExprEvalError;
29
+ private checkArgs;
30
+ }
@@ -0,0 +1,18 @@
1
+ import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity";
2
+ import { ExprEvalResult } from "../ExprEvalResult";
3
+ export declare class FuncArg<T> {
4
+ protected _required: boolean;
5
+ protected _name: string;
6
+ protected _defaultValue?: T;
7
+ constructor(required: boolean, name: string, defaultValue?: T);
8
+ /**
9
+ * For the value provided for a specific invocation of the function, return an appropriate result (maybe some kind of type conversion or type check might happen here)
10
+ *
11
+ * @param invocationValue
12
+ */
13
+ transformValue(invocationValue: ExprEvalResult<LiteralValueAnyArity>): ExprEvalResult<LiteralValueAnyArity>;
14
+ get required(): boolean;
15
+ get name(): string;
16
+ get defaultValue(): T | undefined;
17
+ hasDefaultValue(): boolean;
18
+ }
@@ -0,0 +1,13 @@
1
+ import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity";
2
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext";
3
+ import { ExprEvalError } from "../ExprEvalResult";
4
+ import { Expr } from "../Expr";
5
+ import { Expr0 } from "../Expr0";
6
+ import { LiteralValue } from "../../value/LiteralValue";
7
+ export declare class FunctionExpr extends Expr0<LiteralValueAnyArity> {
8
+ private name;
9
+ private elements;
10
+ private functionImplementation;
11
+ constructor(name: string, elements: Array<Expr<LiteralValue>>);
12
+ protected doEvaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalError | LiteralValueAnyArity;
13
+ }
@@ -0,0 +1,3 @@
1
+ export declare class IfcExpressionFunctionConfigException extends Error {
2
+ constructor(message: string);
3
+ }
@@ -0,0 +1,7 @@
1
+ import { ExprEvalResult } from "../ExprEvalResult";
2
+ import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity";
3
+ import { Func } from "./Func";
4
+ export declare class IfcExpressionFunctions {
5
+ static getFunction(name: string): Func;
6
+ static applyFunction(name: string, functionArgs: Array<ExprEvalResult<LiteralValueAnyArity>>): ExprEvalResult<LiteralValueAnyArity>;
7
+ }
@@ -0,0 +1,19 @@
1
+ import { FuncArg } from "../FuncArg";
2
+ import { ExprEvalError, ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult";
3
+ import { LiteralValueAnyArity } from "../../../value/LiteralValueAnyArity";
4
+ export declare abstract class FuncArgBase<T> extends FuncArg<T> {
5
+ constructor(required: boolean, name: string, defaultValue?: T);
6
+ transformValue(invocationValue: ExprEvalResult<LiteralValueAnyArity>): ExprEvalResult<LiteralValueAnyArity>;
7
+ /**
8
+ * Override to type-check the successfully evaluated invocationValue.
9
+ * @param result
10
+ * @protected
11
+ */
12
+ protected transformForTypeCheck(invocationValue: ExprEvalSuccess<LiteralValueAnyArity>): ExprEvalResult<LiteralValueAnyArity>;
13
+ /**
14
+ * Override to transform the error result obtained from evaluating the invocation value.
15
+ * @param invocationValue
16
+ * @protected
17
+ */
18
+ protected transformForError(invocationValue: ExprEvalError): ExprEvalResult<LiteralValueAnyArity>;
19
+ }
@@ -0,0 +1,8 @@
1
+ import { FuncArgBase } from "./FuncArgBase";
2
+ import { LiteralValueAnyArity } from "../../../value/LiteralValueAnyArity";
3
+ import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult";
4
+ import { NumericValue } from "../../../value/NumericValue";
5
+ export declare class FuncArgInt extends FuncArgBase<NumericValue> {
6
+ constructor(required: boolean, name: string, defaultValue?: NumericValue);
7
+ protected transformForTypeCheck(invocationValue: ExprEvalSuccess<LiteralValueAnyArity>): ExprEvalResult<LiteralValueAnyArity>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { FuncArgBase } from "./FuncArgBase";
2
+ import { LiteralValueAnyArity } from "../../../value/LiteralValueAnyArity";
3
+ import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult";
4
+ import { NumericValue } from "../../../value/NumericValue";
5
+ export declare class FuncArgNumeric extends FuncArgBase<NumericValue> {
6
+ constructor(required: boolean, name: string, defaultValue?: NumericValue);
7
+ protected transformForTypeCheck(invocationValue: ExprEvalSuccess<LiteralValueAnyArity>): ExprEvalResult<LiteralValueAnyArity>;
8
+ }
@@ -0,0 +1,10 @@
1
+ import { Func } from "../Func";
2
+ import { LiteralValueAnyArity } from "../../../value/LiteralValueAnyArity";
3
+ import { ExprEvalResult } from "../../ExprEvalResult";
4
+ export declare class MAP extends Func {
5
+ private static readonly ARG_NAME_MAPPINGS;
6
+ private static readonly ARG_NAME_MAPPING_INPUT;
7
+ private static readonly ARG_NAME_DEFAULT_VALUE;
8
+ constructor();
9
+ protected calculateResult(evaluatedArguments: Map<string, LiteralValueAnyArity>): ExprEvalResult<LiteralValueAnyArity>;
10
+ }
@@ -0,0 +1,9 @@
1
+ import { Func } from "../Func";
2
+ import { LiteralValueAnyArity } from "../../../value/LiteralValueAnyArity";
3
+ import { ExprEvalResult } from "../../ExprEvalResult";
4
+ export declare class ROUND extends Func {
5
+ private static KEY_INPUT;
6
+ private static KEY_NUM_DECMIALS;
7
+ constructor();
8
+ protected calculateResult(evaluatedArguments: Map<string, LiteralValueAnyArity>): ExprEvalResult<LiteralValueAnyArity>;
9
+ }
@@ -1,8 +1,10 @@
1
- import { Expr2 } from "../Expr2";
2
- import { Expr } from "../Expr";
3
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
4
- import { NumericValue } from "../../value/NumericValue";
5
- export declare class DivideExpr extends Expr2<Expr<NumericValue>, Expr<NumericValue>, NumericValue> {
1
+ import { Expr2 } from "../Expr2.js";
2
+ import { Expr } from "../Expr.js";
3
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
4
+ import { NumericValue } from "../../value/NumericValue.js";
5
+ import { ExprEvalError, ExprEvalResult } from "../ExprEvalResult";
6
+ export declare class DivideExpr extends Expr2<NumericValue, NumericValue, NumericValue> {
6
7
  constructor(left: Expr<NumericValue>, right: Expr<NumericValue>);
7
- evaluate(ctx: IfcExpressionContext): NumericValue;
8
+ protected calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, left: NumericValue, right: NumericValue): NumericValue | ExprEvalError;
9
+ protected handleError(error: any, leftResult: ExprEvalResult<NumericValue>, rightResult: ExprEvalResult<NumericValue>): ExprEvalError;
8
10
  }
@@ -1,8 +1,9 @@
1
- import { Expr2 } from "../Expr2";
2
- import { Expr } from "../Expr";
3
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
4
- import { NumericValue } from "../../value/NumericValue";
5
- export declare class MinusExpr extends Expr2<Expr<NumericValue>, Expr<NumericValue>, NumericValue> {
1
+ import { Expr2 } from "../Expr2.js";
2
+ import { Expr } from "../Expr.js";
3
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
4
+ import { NumericValue } from "../../value/NumericValue.js";
5
+ import { ExprEvalError } from "../ExprEvalResult";
6
+ export declare class MinusExpr extends Expr2<NumericValue, NumericValue, NumericValue> {
6
7
  constructor(left: Expr<NumericValue>, right: Expr<NumericValue>);
7
- evaluate(ctx: IfcExpressionContext): NumericValue;
8
+ protected calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, left: NumericValue, right: NumericValue): NumericValue | ExprEvalError;
8
9
  }
@@ -1,8 +1,9 @@
1
- import { Expr2 } from "../Expr2";
2
- import { Expr } from "../Expr";
3
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
4
- import { NumericValue } from "../../value/NumericValue";
5
- export declare class MultiplyExpr extends Expr2<Expr<NumericValue>, Expr<NumericValue>, NumericValue> {
1
+ import { Expr2 } from "../Expr2.js";
2
+ import { Expr } from "../Expr.js";
3
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
4
+ import { NumericValue } from "../../value/NumericValue.js";
5
+ import { ExprEvalError } from "../ExprEvalResult";
6
+ export declare class MultiplyExpr extends Expr2<NumericValue, NumericValue, NumericValue> {
6
7
  constructor(left: Expr<NumericValue>, right: Expr<NumericValue>);
7
- evaluate(ctx: IfcExpressionContext): NumericValue;
8
+ protected calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, left: NumericValue, right: NumericValue): NumericValue | ExprEvalError;
8
9
  }
@@ -1,8 +1,8 @@
1
- import { Expr1 } from "../Expr1";
2
- import { Expr } from "../Expr";
3
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
4
- import { NumericValue } from "../../value/NumericValue";
5
- export declare class NumParenthesisExpr extends Expr1<Expr<NumericValue>, NumericValue> {
1
+ import { Expr1 } from "../Expr1.js";
2
+ import { Expr } from "../Expr.js";
3
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
4
+ import { NumericValue } from "../../value/NumericValue.js";
5
+ export declare class NumParenthesisExpr extends Expr1<NumericValue, NumericValue> {
6
6
  constructor(expression: Expr<NumericValue>);
7
- evaluate(ctx: IfcExpressionContext): NumericValue;
7
+ protected calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, subExpressionValue: NumericValue): NumericValue;
8
8
  }
@@ -1,7 +1,8 @@
1
- import { Expr1 } from "../Expr1";
2
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
3
- import { NumericValue } from "../../value/NumericValue";
4
- export declare class NumericLiteralExpr extends Expr1<NumericValue, NumericValue> {
1
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
2
+ import { NumericValue } from "../../value/NumericValue.js";
3
+ import { ExprEvalError } from "../ExprEvalResult";
4
+ import { LiteralExpr } from "../LiteralExpr";
5
+ export declare class NumericLiteralExpr extends LiteralExpr<NumericValue, NumericValue> {
5
6
  constructor(value: NumericValue);
6
- evaluate(ctx: IfcExpressionContext): NumericValue;
7
+ protected calculateResult(ctx: IfcExpressionContext): NumericValue | ExprEvalError;
7
8
  }
@@ -1,8 +1,8 @@
1
- import { Expr2 } from "../Expr2";
2
- import { Expr } from "../Expr";
3
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
4
- import { NumericValue } from "../../value/NumericValue";
5
- export declare class PlusExpr extends Expr2<Expr<NumericValue>, Expr<NumericValue>, NumericValue> {
1
+ import { Expr2 } from "../Expr2.js";
2
+ import { Expr } from "../Expr.js";
3
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
4
+ import { NumericValue } from "../../value/NumericValue.js";
5
+ export declare class PlusExpr extends Expr2<NumericValue, NumericValue, NumericValue> {
6
6
  constructor(left: Expr<NumericValue>, right: Expr<NumericValue>);
7
- evaluate(ctx: IfcExpressionContext): NumericValue;
7
+ calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: NumericValue, rightResult: NumericValue): NumericValue;
8
8
  }
@@ -1,9 +1,13 @@
1
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
2
- import { Expr2 } from "../Expr2";
3
- import { NestedObjectChainExpr } from "./NestedObjectChainExpr";
4
- import { ObjectReferenceExpr } from "./ObjectReferenceExpr";
5
- import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity";
6
- export declare class AttributeReferenceExpr extends Expr2<ObjectReferenceExpr, NestedObjectChainExpr, LiteralValueAnyArity> {
7
- constructor(left: ObjectReferenceExpr, right: NestedObjectChainExpr);
8
- evaluate(ctx: IfcExpressionContext): LiteralValueAnyArity;
1
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
2
+ import { Expr2 } from "../Expr2.js";
3
+ import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity.js";
4
+ import { ObjectAccessor } from "../../context/ObjectAccessor.js";
5
+ import { ExprEvalError, ExprEvalResult } from "../ExprEvalResult";
6
+ import { Expr } from "../Expr";
7
+ export declare class AttributeReferenceExpr extends Expr2<ObjectAccessor, LiteralValueAnyArity, LiteralValueAnyArity> {
8
+ constructor(left: Expr<ObjectAccessor>, right: Expr<LiteralValueAnyArity>);
9
+ protected onAfterLeftRecursion(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: ObjectAccessor): void;
10
+ calculateResult(ctx: IfcExpressionContext, localCtx: any, objectAccessor: ObjectAccessor, dereferencedValue: LiteralValueAnyArity): LiteralValueAnyArity | ExprEvalError;
11
+ protected makeResultForRightSubExprError(ctx: IfcExpressionContext, localCtx: Map<string, any>, leftResult: ExprEvalResult<ObjectAccessor>, rightResult: ExprEvalError): ExprEvalResult<LiteralValueAnyArity>;
12
+ protected handleError(error: any, leftResult: ExprEvalResult<ObjectAccessor>, rightResult: ExprEvalResult<LiteralValueAnyArity>): ExprEvalError;
9
13
  }
@@ -1,8 +1,8 @@
1
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
2
- import { ObjectReferenceExpr } from "./ObjectReferenceExpr";
3
- import { ObjectAccessor } from "../../context/ObjectAccessor";
4
- import { Expr0 } from "../Expr0";
1
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
2
+ import { ObjectReferenceExpr } from "./ObjectReferenceExpr.js";
3
+ import { ObjectAccessor } from "../../context/ObjectAccessor.js";
4
+ import { Expr0 } from "../Expr0.js";
5
5
  export declare class ElemObjectReferenceExpr extends Expr0<ObjectAccessor> implements ObjectReferenceExpr {
6
6
  constructor();
7
- evaluate(ctx: IfcExpressionContext): ObjectAccessor;
7
+ doEvaluate(ctx: IfcExpressionContext): ObjectAccessor;
8
8
  }
@@ -1,8 +1,9 @@
1
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
2
- import { Expr1 } from "../Expr1";
3
- import { ObjectAccessor } from "../../context/ObjectAccessor";
4
- import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity";
5
- export declare class NestedObjectChainEndExpr extends Expr1<string, (oa: ObjectAccessor) => LiteralValueAnyArity> {
1
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
2
+ import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity.js";
3
+ import { ExprEvalError } from "../ExprEvalResult";
4
+ import { Expr0 } from "../Expr0";
5
+ export declare class NestedObjectChainEndExpr extends Expr0<LiteralValueAnyArity> {
6
+ private readonly attributeName;
6
7
  constructor(value: string);
7
- evaluate(ctx: IfcExpressionContext): (oa: ObjectAccessor) => LiteralValueAnyArity;
8
+ protected doEvaluate(ctx: IfcExpressionContext, localCtx: Map<string, any>): ExprEvalError | LiteralValueAnyArity;
8
9
  }
@@ -1,9 +1,12 @@
1
- import { IfcExpressionContext } from "../../context/IfcExpressionContext";
2
- import { Expr2 } from "../Expr2";
3
- import { NestedObjectChainEndExpr } from "./NestedObjectChainEndExpr";
4
- import { ObjectAccessor } from "../../context/ObjectAccessor";
5
- import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity";
6
- export declare class NestedObjectChainExpr extends Expr2<string, NestedObjectChainExpr | NestedObjectChainEndExpr, (oa: ObjectAccessor) => LiteralValueAnyArity> {
7
- constructor(left: string, right: NestedObjectChainExpr);
8
- evaluate(ctx: IfcExpressionContext): (oa: ObjectAccessor) => LiteralValueAnyArity;
1
+ import { IfcExpressionContext } from "../../context/IfcExpressionContext.js";
2
+ import { LiteralValueAnyArity } from "../../value/LiteralValueAnyArity.js";
3
+ import { ExprEvalError, ExprEvalResult } from "../ExprEvalResult";
4
+ import { Expr1 } from "../Expr1";
5
+ export declare class NestedObjectChainExpr extends Expr1<LiteralValueAnyArity, LiteralValueAnyArity> {
6
+ private readonly literalObjectRef;
7
+ constructor(literalObjectRef: string, nextLink: NestedObjectChainExpr);
8
+ protected onBeforeRecusion(ctx: IfcExpressionContext, localCtx: Map<string, any>): undefined | ExprEvalError;
9
+ calculateResult(ctx: IfcExpressionContext, localCtx: Map<string, any>, result: LiteralValueAnyArity): LiteralValueAnyArity | ExprEvalError;
10
+ protected obtainResultForSubExpressionError(ctx: IfcExpressionContext, localCtx: Map<string, any>, subExpressionResult: ExprEvalError): ExprEvalResult<LiteralValueAnyArity>;
11
+ protected handleError(error: any, subResult: ExprEvalResult<LiteralValueAnyArity>): ExprEvalError;
9
12
  }