ifc-expressions 0.2.0 → 0.2.2

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 (234) hide show
  1. package/dist/IfcExpression.d.ts +7 -1
  2. package/dist/cjs/ExprVisitor.js +126 -0
  3. package/dist/cjs/ExprVisitor.js.map +1 -0
  4. package/dist/cjs/IfcExpression.js +11 -1
  5. package/dist/cjs/IfcExpression.js.map +1 -0
  6. package/dist/cjs/IfcExpressionErrorListener.js +23 -0
  7. package/dist/cjs/IfcExpressionErrorListener.js.map +1 -0
  8. package/dist/cjs/SyntaxErrorException.js +24 -0
  9. package/dist/cjs/SyntaxErrorException.js.map +1 -0
  10. package/dist/cjs/context/IfcElementAccessor.js +34 -0
  11. package/dist/cjs/context/IfcElementAccessor.js.map +1 -0
  12. package/dist/cjs/context/IfcExpressionContext.js +3 -0
  13. package/dist/cjs/context/IfcExpressionContext.js.map +1 -0
  14. package/dist/cjs/context/IfcPropertyAccessor.js +28 -0
  15. package/dist/cjs/context/IfcPropertyAccessor.js.map +1 -0
  16. package/dist/cjs/context/IfcPropertySetAccessor.js +17 -0
  17. package/dist/cjs/context/IfcPropertySetAccessor.js.map +1 -0
  18. package/dist/cjs/context/IfcRootObjectAccessor.js +19 -0
  19. package/dist/cjs/context/IfcRootObjectAccessor.js.map +1 -0
  20. package/dist/cjs/context/IfcTypeObjectAccessor.js +22 -0
  21. package/dist/cjs/context/IfcTypeObjectAccessor.js.map +1 -0
  22. package/dist/cjs/context/NamedObjectAccessor.js +26 -0
  23. package/dist/cjs/context/NamedObjectAccessor.js.map +1 -0
  24. package/dist/cjs/context/ObjectAccessor.js +3 -0
  25. package/dist/cjs/context/ObjectAccessor.js.map +1 -0
  26. package/dist/cjs/expression/ArrayExpr.js +3 -0
  27. package/dist/cjs/expression/ArrayExpr.js.map +1 -0
  28. package/dist/cjs/expression/Expr.js +3 -0
  29. package/dist/cjs/expression/Expr.js.map +1 -0
  30. package/dist/cjs/expression/Expr0.js +8 -0
  31. package/dist/cjs/expression/Expr0.js.map +1 -0
  32. package/dist/cjs/expression/Expr1.js +10 -0
  33. package/dist/cjs/expression/Expr1.js.map +1 -0
  34. package/dist/cjs/expression/Expr2.js +11 -0
  35. package/dist/cjs/expression/Expr2.js.map +1 -0
  36. package/dist/cjs/expression/IfcExpressionEvaluationException.js +10 -0
  37. package/dist/cjs/expression/IfcExpressionEvaluationException.js.map +1 -0
  38. package/dist/cjs/expression/numeric/DivideExpr.js +18 -0
  39. package/dist/cjs/expression/numeric/DivideExpr.js.map +1 -0
  40. package/dist/cjs/expression/numeric/MinusExpr.js +18 -0
  41. package/dist/cjs/expression/numeric/MinusExpr.js.map +1 -0
  42. package/dist/cjs/expression/numeric/MultiplyByExpr.js +18 -0
  43. package/dist/cjs/expression/numeric/MultiplyByExpr.js.map +1 -0
  44. package/dist/cjs/expression/numeric/MultiplyExpr.js +18 -0
  45. package/dist/cjs/expression/numeric/MultiplyExpr.js.map +1 -0
  46. package/dist/cjs/expression/numeric/NumParenthesisExpr.js +14 -0
  47. package/dist/cjs/expression/numeric/NumParenthesisExpr.js.map +1 -0
  48. package/dist/cjs/expression/numeric/NumericLiteralExpr.js +14 -0
  49. package/dist/cjs/expression/numeric/NumericLiteralExpr.js.map +1 -0
  50. package/dist/cjs/expression/numeric/PlusExpr.js +18 -0
  51. package/dist/cjs/expression/numeric/PlusExpr.js.map +1 -0
  52. package/dist/cjs/expression/reference/AttributeReferenceExpr.js +16 -0
  53. package/dist/cjs/expression/reference/AttributeReferenceExpr.js.map +1 -0
  54. package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js +14 -0
  55. package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -0
  56. package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js +14 -0
  57. package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -0
  58. package/dist/cjs/expression/reference/NestedObjectChainExpr.js +15 -0
  59. package/dist/cjs/expression/reference/NestedObjectChainExpr.js.map +1 -0
  60. package/dist/cjs/expression/reference/ObjectReferenceExpr.js +3 -0
  61. package/dist/cjs/expression/reference/ObjectReferenceExpr.js.map +1 -0
  62. package/dist/cjs/expression/reference/PropObjectReferenceExpr.js +14 -0
  63. package/dist/cjs/expression/reference/PropObjectReferenceExpr.js.map +1 -0
  64. package/dist/cjs/expression/string/StringConcatExpr.js +15 -0
  65. package/dist/cjs/expression/string/StringConcatExpr.js.map +1 -0
  66. package/dist/cjs/expression/string/StringLiteralExpr.js +14 -0
  67. package/dist/cjs/expression/string/StringLiteralExpr.js.map +1 -0
  68. package/dist/cjs/package.json +1 -0
  69. package/dist/cjs/parser/IfcExpressionLexer.js +140 -0
  70. package/dist/cjs/parser/IfcExpressionLexer.js.map +1 -0
  71. package/dist/cjs/parser/IfcExpressionListener.js +12 -0
  72. package/dist/cjs/parser/IfcExpressionListener.js.map +1 -0
  73. package/dist/cjs/parser/IfcExpressionParser.js +1514 -0
  74. package/dist/cjs/parser/IfcExpressionParser.js.map +1 -0
  75. package/dist/cjs/parser/IfcExpressionVisitor.js +15 -0
  76. package/dist/cjs/parser/IfcExpressionVisitor.js.map +1 -0
  77. package/dist/cjs/utils.js +12 -0
  78. package/dist/cjs/utils.js.map +1 -0
  79. package/dist/cjs/value/BooleanValue.js +14 -0
  80. package/dist/cjs/value/BooleanValue.js.map +1 -0
  81. package/dist/cjs/value/LiteralValue.js +3 -0
  82. package/dist/cjs/value/LiteralValue.js.map +1 -0
  83. package/dist/cjs/value/LiteralValueAnyArity.js +3 -0
  84. package/dist/cjs/value/LiteralValueAnyArity.js.map +1 -0
  85. package/dist/cjs/value/LogicalValue.js +14 -0
  86. package/dist/cjs/value/LogicalValue.js.map +1 -0
  87. package/dist/cjs/value/NumericValue.js +18 -0
  88. package/dist/cjs/value/NumericValue.js.map +1 -0
  89. package/dist/cjs/value/PrimitiveValueType.js +3 -0
  90. package/dist/cjs/value/PrimitiveValueType.js.map +1 -0
  91. package/dist/cjs/value/ReferenceValue.js +14 -0
  92. package/dist/cjs/value/ReferenceValue.js.map +1 -0
  93. package/dist/cjs/value/StringValue.js +14 -0
  94. package/dist/cjs/value/StringValue.js.map +1 -0
  95. package/dist/cjs/value/Value.js +13 -0
  96. package/dist/cjs/value/Value.js.map +1 -0
  97. package/dist/context/IfcElementAccessor.d.ts +18 -0
  98. package/dist/context/IfcExpressionContext.d.ts +6 -0
  99. package/dist/context/IfcPropertyAccessor.d.ts +12 -0
  100. package/dist/context/IfcPropertySetAccessor.d.ts +11 -0
  101. package/dist/context/IfcRootObjectAccessor.d.ts +7 -0
  102. package/dist/context/IfcTypeObjectAccessor.d.ts +13 -0
  103. package/dist/context/NamedObjectAccessor.d.ts +10 -0
  104. package/dist/context/ObjectAccessor.d.ts +16 -0
  105. package/dist/expression/ArrayExpr.d.ts +3 -0
  106. package/dist/expression/Expr.d.ts +4 -0
  107. package/dist/expression/Expr0.d.ts +6 -0
  108. package/dist/expression/Expr1.d.ts +7 -0
  109. package/dist/expression/Expr2.d.ts +8 -0
  110. package/dist/expression/IfcExpressionEvaluationException.d.ts +3 -0
  111. package/dist/expression/numeric/DivideExpr.d.ts +8 -0
  112. package/dist/expression/numeric/MinusExpr.d.ts +8 -0
  113. package/dist/expression/numeric/MultiplyByExpr.d.ts +8 -0
  114. package/dist/expression/numeric/MultiplyExpr.d.ts +8 -0
  115. package/dist/expression/numeric/NumParenthesisExpr.d.ts +8 -0
  116. package/dist/expression/numeric/NumericLiteralExpr.d.ts +7 -0
  117. package/dist/expression/numeric/PlusExpr.d.ts +8 -0
  118. package/dist/expression/reference/AttributeReferenceExpr.d.ts +9 -0
  119. package/dist/expression/reference/ElemObjectReferenceExpr.d.ts +8 -0
  120. package/dist/expression/reference/NestedObjectChainEndExpr.d.ts +8 -0
  121. package/dist/expression/reference/NestedObjectChainExpr.d.ts +9 -0
  122. package/dist/expression/reference/ObjectReferenceExpr.d.ts +4 -0
  123. package/dist/expression/reference/PropObjectReferenceExpr.d.ts +8 -0
  124. package/dist/expression/string/StringConcatExpr.d.ts +8 -0
  125. package/dist/expression/string/StringLiteralExpr.d.ts +7 -0
  126. package/dist/mjs/ExprVisitor.js +119 -0
  127. package/dist/mjs/ExprVisitor.js.map +1 -0
  128. package/dist/mjs/IfcExpression.js +48 -0
  129. package/dist/mjs/IfcExpression.js.map +1 -0
  130. package/dist/mjs/IfcExpressionErrorListener.js +19 -0
  131. package/dist/mjs/IfcExpressionErrorListener.js.map +1 -0
  132. package/dist/mjs/SyntaxErrorException.js +20 -0
  133. package/dist/mjs/SyntaxErrorException.js.map +1 -0
  134. package/dist/mjs/context/IfcElementAccessor.js +30 -0
  135. package/dist/mjs/context/IfcElementAccessor.js.map +1 -0
  136. package/dist/mjs/context/IfcExpressionContext.js +2 -0
  137. package/dist/mjs/context/IfcExpressionContext.js.map +1 -0
  138. package/dist/mjs/context/IfcPropertyAccessor.js +24 -0
  139. package/dist/mjs/context/IfcPropertyAccessor.js.map +1 -0
  140. package/dist/mjs/context/IfcPropertySetAccessor.js +13 -0
  141. package/dist/mjs/context/IfcPropertySetAccessor.js.map +1 -0
  142. package/dist/mjs/context/IfcRootObjectAccessor.js +15 -0
  143. package/dist/mjs/context/IfcRootObjectAccessor.js.map +1 -0
  144. package/dist/mjs/context/IfcTypeObjectAccessor.js +18 -0
  145. package/dist/mjs/context/IfcTypeObjectAccessor.js.map +1 -0
  146. package/dist/mjs/context/NamedObjectAccessor.js +22 -0
  147. package/dist/mjs/context/NamedObjectAccessor.js.map +1 -0
  148. package/dist/mjs/context/ObjectAccessor.js +2 -0
  149. package/dist/mjs/context/ObjectAccessor.js.map +1 -0
  150. package/dist/mjs/expression/ArrayExpr.js +2 -0
  151. package/dist/mjs/expression/ArrayExpr.js.map +1 -0
  152. package/dist/mjs/expression/Expr.js +2 -0
  153. package/dist/mjs/expression/Expr.js.map +1 -0
  154. package/dist/mjs/expression/Expr0.js +4 -0
  155. package/dist/mjs/expression/Expr0.js.map +1 -0
  156. package/dist/mjs/expression/Expr1.js +6 -0
  157. package/dist/mjs/expression/Expr1.js.map +1 -0
  158. package/dist/mjs/expression/Expr2.js +7 -0
  159. package/dist/mjs/expression/Expr2.js.map +1 -0
  160. package/dist/mjs/expression/IfcExpressionEvaluationException.js +6 -0
  161. package/dist/mjs/expression/IfcExpressionEvaluationException.js.map +1 -0
  162. package/dist/mjs/expression/numeric/DivideExpr.js +14 -0
  163. package/dist/mjs/expression/numeric/DivideExpr.js.map +1 -0
  164. package/dist/mjs/expression/numeric/MinusExpr.js +14 -0
  165. package/dist/mjs/expression/numeric/MinusExpr.js.map +1 -0
  166. package/dist/mjs/expression/numeric/MultiplyByExpr.js +14 -0
  167. package/dist/mjs/expression/numeric/MultiplyByExpr.js.map +1 -0
  168. package/dist/mjs/expression/numeric/MultiplyExpr.js +14 -0
  169. package/dist/mjs/expression/numeric/MultiplyExpr.js.map +1 -0
  170. package/dist/mjs/expression/numeric/NumParenthesisExpr.js +10 -0
  171. package/dist/mjs/expression/numeric/NumParenthesisExpr.js.map +1 -0
  172. package/dist/mjs/expression/numeric/NumericLiteralExpr.js +10 -0
  173. package/dist/mjs/expression/numeric/NumericLiteralExpr.js.map +1 -0
  174. package/dist/mjs/expression/numeric/PlusExpr.js +14 -0
  175. package/dist/mjs/expression/numeric/PlusExpr.js.map +1 -0
  176. package/dist/mjs/expression/reference/AttributeReferenceExpr.js +12 -0
  177. package/dist/mjs/expression/reference/AttributeReferenceExpr.js.map +1 -0
  178. package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js +10 -0
  179. package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -0
  180. package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js +10 -0
  181. package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -0
  182. package/dist/mjs/expression/reference/NestedObjectChainExpr.js +11 -0
  183. package/dist/mjs/expression/reference/NestedObjectChainExpr.js.map +1 -0
  184. package/dist/mjs/expression/reference/ObjectReferenceExpr.js +2 -0
  185. package/dist/mjs/expression/reference/ObjectReferenceExpr.js.map +1 -0
  186. package/dist/mjs/expression/reference/PropObjectReferenceExpr.js +10 -0
  187. package/dist/mjs/expression/reference/PropObjectReferenceExpr.js.map +1 -0
  188. package/dist/mjs/expression/string/StringConcatExpr.js +11 -0
  189. package/dist/mjs/expression/string/StringConcatExpr.js.map +1 -0
  190. package/dist/mjs/expression/string/StringLiteralExpr.js +10 -0
  191. package/dist/mjs/expression/string/StringLiteralExpr.js.map +1 -0
  192. package/dist/mjs/package.json +1 -0
  193. package/dist/mjs/parser/IfcExpressionLexer.js +138 -0
  194. package/dist/mjs/parser/IfcExpressionLexer.js.map +1 -0
  195. package/dist/mjs/parser/IfcExpressionListener.js +9 -0
  196. package/dist/mjs/parser/IfcExpressionListener.js.map +1 -0
  197. package/dist/mjs/parser/IfcExpressionParser.js +1487 -0
  198. package/dist/mjs/parser/IfcExpressionParser.js.map +1 -0
  199. package/dist/mjs/parser/IfcExpressionVisitor.js +12 -0
  200. package/dist/mjs/parser/IfcExpressionVisitor.js.map +1 -0
  201. package/dist/mjs/utils.js +7 -0
  202. package/dist/mjs/utils.js.map +1 -0
  203. package/dist/mjs/value/BooleanValue.js +10 -0
  204. package/dist/mjs/value/BooleanValue.js.map +1 -0
  205. package/dist/mjs/value/LiteralValue.js +2 -0
  206. package/dist/mjs/value/LiteralValue.js.map +1 -0
  207. package/dist/mjs/value/LiteralValueAnyArity.js +2 -0
  208. package/dist/mjs/value/LiteralValueAnyArity.js.map +1 -0
  209. package/dist/mjs/value/LogicalValue.js +10 -0
  210. package/dist/mjs/value/LogicalValue.js.map +1 -0
  211. package/dist/mjs/value/NumericValue.js +11 -0
  212. package/dist/mjs/value/NumericValue.js.map +1 -0
  213. package/dist/mjs/value/PrimitiveValueType.js +2 -0
  214. package/dist/mjs/value/PrimitiveValueType.js.map +1 -0
  215. package/dist/mjs/value/ReferenceValue.js +10 -0
  216. package/dist/mjs/value/ReferenceValue.js.map +1 -0
  217. package/dist/mjs/value/StringValue.js +10 -0
  218. package/dist/mjs/value/StringValue.js.map +1 -0
  219. package/dist/mjs/value/Value.js +9 -0
  220. package/dist/mjs/value/Value.js.map +1 -0
  221. package/dist/parser/IfcExpressionLexer.d.ts +43 -0
  222. package/dist/parser/IfcExpressionListener.d.ts +262 -0
  223. package/dist/parser/IfcExpressionParser.d.ts +265 -0
  224. package/dist/parser/IfcExpressionVisitor.d.ts +169 -0
  225. package/dist/value/BooleanValue.d.ts +5 -0
  226. package/dist/value/LiteralValue.d.ts +6 -0
  227. package/dist/value/LiteralValueAnyArity.d.ts +2 -0
  228. package/dist/value/LogicalValue.d.ts +5 -0
  229. package/dist/value/NumericValue.d.ts +6 -0
  230. package/dist/value/PrimitiveValueType.d.ts +2 -0
  231. package/dist/value/ReferenceValue.d.ts +5 -0
  232. package/dist/value/StringValue.d.ts +5 -0
  233. package/dist/value/Value.d.ts +6 -0
  234. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../generated/parser/IfcExpressionParser.ts"],"names":[],"mappings":"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AC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;IACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;IACvE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC;IACtE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;IACvE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC;IACtE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC;IACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;IACvE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;IACvE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACvE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACvE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACvE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;IACtE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;IACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACtE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACtE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,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","file":"parser/IfcExpressionParser.js","sourcesContent":["// Generated from IfcExpression.g4 by ANTLR 4.13.0\n// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols\n\nimport {\n\tATN,\n\tATNDeserializer, DecisionState, DFA, FailedPredicateException,\n\tRecognitionException, NoViableAltException, BailErrorStrategy,\n\tParser, ParserATNSimulator,\n\tRuleContext, ParserRuleContext, PredictionMode, PredictionContextCache,\n\tTerminalNode, RuleNode,\n\tToken, TokenStream,\n\tInterval, IntervalSet\n} from 'antlr4';\nimport IfcExpressionListener from \"./IfcExpressionListener.js\";\nimport IfcExpressionVisitor from \"./IfcExpressionVisitor.js\";\n\n// for running tests with parameters, TODO: discuss strategy for typed parameters in CI\n// eslint-disable-next-line no-unused-vars\ntype int = number;\n\nexport default class IfcExpressionParser extends Parser {\n\tpublic static readonly T__0 = 1;\n\tpublic static readonly T__1 = 2;\n\tpublic static readonly T__2 = 3;\n\tpublic static readonly T__3 = 4;\n\tpublic static readonly T__4 = 5;\n\tpublic static readonly T__5 = 6;\n\tpublic static readonly T__6 = 7;\n\tpublic static readonly T__7 = 8;\n\tpublic static readonly T__8 = 9;\n\tpublic static readonly T__9 = 10;\n\tpublic static readonly T__10 = 11;\n\tpublic static readonly INT = 12;\n\tpublic static readonly FLOAT = 13;\n\tpublic static readonly PROP = 14;\n\tpublic static readonly ELEM = 15;\n\tpublic static readonly RESERVED_ATTRIBUTE_NAME = 16;\n\tpublic static readonly RESERVED_RELATION_NAME = 17;\n\tpublic static readonly QUOTED_STRING = 18;\n\tpublic static readonly BRACKETED_STRING = 19;\n\tpublic static readonly IDENTIFIER = 20;\n\tpublic static readonly WS = 21;\n\tpublic static readonly NEWLINE = 22;\n\tpublic static readonly EOF = Token.EOF;\n\tpublic static readonly RULE_expr = 0;\n\tpublic static readonly RULE_numExpr = 1;\n\tpublic static readonly RULE_numLiteral = 2;\n\tpublic static readonly RULE_stringExpr = 3;\n\tpublic static readonly RULE_objectRef = 4;\n\tpublic static readonly RULE_attributeRef = 5;\n\tpublic static readonly RULE_nestedObjectChain = 6;\n\tpublic static readonly RULE_namedRef = 7;\n\tpublic static readonly RULE_functionCall = 8;\n\tpublic static readonly RULE_exprList = 9;\n\tpublic static readonly RULE_array = 10;\n\tpublic static readonly RULE_arrayElementList = 11;\n\tpublic static readonly literalNames: (string | null)[] = [ null, \"'*'\", \n \"'/'\", \"'+'\", \n \"'-'\", \"'('\", \n \"')'\", \"'.'\", \n \"'@'\", \"','\", \n \"'['\", \"']'\" ];\n\tpublic static readonly symbolicNames: (string | null)[] = [ null, null, \n null, null, \n null, null, \n null, null, \n null, null, \n null, null, \n \"INT\", \"FLOAT\", \n \"PROP\", \"ELEM\", \n \"RESERVED_ATTRIBUTE_NAME\", \n \"RESERVED_RELATION_NAME\", \n \"QUOTED_STRING\", \n \"BRACKETED_STRING\", \n \"IDENTIFIER\", \n \"WS\", \"NEWLINE\" ];\n\t// tslint:disable:no-trailing-whitespace\n\tpublic static readonly ruleNames: string[] = [\n\t\t\"expr\", \"numExpr\", \"numLiteral\", \"stringExpr\", \"objectRef\", \"attributeRef\", \n\t\t\"nestedObjectChain\", \"namedRef\", \"functionCall\", \"exprList\", \"array\", \n\t\t\"arrayElementList\",\n\t];\n\tpublic get grammarFileName(): string { return \"IfcExpression.g4\"; }\n\tpublic get literalNames(): (string | null)[] { return IfcExpressionParser.literalNames; }\n\tpublic get symbolicNames(): (string | null)[] { return IfcExpressionParser.symbolicNames; }\n\tpublic get ruleNames(): string[] { return IfcExpressionParser.ruleNames; }\n\tpublic get serializedATN(): number[] { return IfcExpressionParser._serializedATN; }\n\n\tprotected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException {\n\t\treturn new FailedPredicateException(this, predicate, message);\n\t}\n\n\tconstructor(input: TokenStream) {\n\t\tsuper(input);\n\t\tthis._interp = new ParserATNSimulator(this, IfcExpressionParser._ATN, IfcExpressionParser.DecisionsToDFA, new PredictionContextCache());\n\t}\n\t// @RuleVersion(0)\n\tpublic expr(): ExprContext {\n\t\tlet localctx: ExprContext = new ExprContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 0, IfcExpressionParser.RULE_expr);\n\t\ttry {\n\t\t\tthis.state = 29;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 0, this._ctx) ) {\n\t\t\tcase 1:\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 24;\n\t\t\t\tthis.attributeRef();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 25;\n\t\t\t\tthis.functionCall();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tthis.enterOuterAlt(localctx, 3);\n\t\t\t\t{\n\t\t\t\tthis.state = 26;\n\t\t\t\tthis.numExpr(0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tthis.enterOuterAlt(localctx, 4);\n\t\t\t\t{\n\t\t\t\tthis.state = 27;\n\t\t\t\tthis.array();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\tthis.enterOuterAlt(localctx, 5);\n\t\t\t\t{\n\t\t\t\tthis.state = 28;\n\t\t\t\tthis.stringExpr(0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\n\tpublic numExpr(): NumExprContext;\n\tpublic numExpr(_p: number): NumExprContext;\n\t// @RuleVersion(0)\n\tpublic numExpr(_p?: number): NumExprContext {\n\t\tif (_p === undefined) {\n\t\t\t_p = 0;\n\t\t}\n\n\t\tlet _parentctx: ParserRuleContext = this._ctx;\n\t\tlet _parentState: number = this.state;\n\t\tlet localctx: NumExprContext = new NumExprContext(this, this._ctx, _parentState);\n\t\tlet _prevctx: NumExprContext = localctx;\n\t\tlet _startState: number = 2;\n\t\tthis.enterRecursionRule(localctx, 2, IfcExpressionParser.RULE_numExpr, _p);\n\t\tlet _la: number;\n\t\ttry {\n\t\t\tlet _alt: number;\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 39;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 12:\n\t\t\tcase 13:\n\t\t\t\t{\n\t\t\t\tlocalctx = new NumLitContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\n\t\t\t\tthis.state = 32;\n\t\t\t\tthis.numLiteral();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\t{\n\t\t\t\tlocalctx = new NumParensContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 33;\n\t\t\t\tthis.match(IfcExpressionParser.T__4);\n\t\t\t\tthis.state = 34;\n\t\t\t\tthis.numExpr(0);\n\t\t\t\tthis.state = 35;\n\t\t\t\tthis.match(IfcExpressionParser.T__5);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 20:\n\t\t\t\t{\n\t\t\t\tlocalctx = new NumFunCallContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 37;\n\t\t\t\tthis.functionCall();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 14:\n\t\t\tcase 15:\n\t\t\t\t{\n\t\t\t\tlocalctx = new NumAttributeRefContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 38;\n\t\t\t\tthis.attributeRef();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NoViableAltException(this);\n\t\t\t}\n\t\t\tthis._ctx.stop = this._input.LT(-1);\n\t\t\tthis.state = 49;\n\t\t\tthis._errHandler.sync(this);\n\t\t\t_alt = this._interp.adaptivePredict(this._input, 3, this._ctx);\n\t\t\twhile (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {\n\t\t\t\tif (_alt === 1) {\n\t\t\t\t\tif (this._parseListeners != null) {\n\t\t\t\t\t\tthis.triggerExitRuleEvent();\n\t\t\t\t\t}\n\t\t\t\t\t_prevctx = localctx;\n\t\t\t\t\t{\n\t\t\t\t\tthis.state = 47;\n\t\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t\tswitch ( this._interp.adaptivePredict(this._input, 2, this._ctx) ) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new NumMulDivContext(this, new NumExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_numExpr);\n\t\t\t\t\t\tthis.state = 41;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 6))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 6)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 42;\n\t\t\t\t\t\t(localctx as NumMulDivContext)._op = this._input.LT(1);\n\t\t\t\t\t\t_la = this._input.LA(1);\n\t\t\t\t\t\tif(!(_la===1 || _la===2)) {\n\t\t\t\t\t\t (localctx as NumMulDivContext)._op = this._errHandler.recoverInline(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t\t\t\t this.consume();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 43;\n\t\t\t\t\t\tthis.numExpr(7);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new NumAddSubContext(this, new NumExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_numExpr);\n\t\t\t\t\t\tthis.state = 44;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 5))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 5)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 45;\n\t\t\t\t\t\t(localctx as NumAddSubContext)._op = this._input.LT(1);\n\t\t\t\t\t\t_la = this._input.LA(1);\n\t\t\t\t\t\tif(!(_la===3 || _la===4)) {\n\t\t\t\t\t\t (localctx as NumAddSubContext)._op = this._errHandler.recoverInline(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t\t\t\t this.consume();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 46;\n\t\t\t\t\t\tthis.numExpr(6);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.state = 51;\n\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t_alt = this._interp.adaptivePredict(this._input, 3, this._ctx);\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.unrollRecursionContexts(_parentctx);\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic numLiteral(): NumLiteralContext {\n\t\tlet localctx: NumLiteralContext = new NumLiteralContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 4, IfcExpressionParser.RULE_numLiteral);\n\t\tlet _la: number;\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 52;\n\t\t\t_la = this._input.LA(1);\n\t\t\tif(!(_la===12 || _la===13)) {\n\t\t\tthis._errHandler.recoverInline(this);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t this.consume();\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\n\tpublic stringExpr(): StringExprContext;\n\tpublic stringExpr(_p: number): StringExprContext;\n\t// @RuleVersion(0)\n\tpublic stringExpr(_p?: number): StringExprContext {\n\t\tif (_p === undefined) {\n\t\t\t_p = 0;\n\t\t}\n\n\t\tlet _parentctx: ParserRuleContext = this._ctx;\n\t\tlet _parentState: number = this.state;\n\t\tlet localctx: StringExprContext = new StringExprContext(this, this._ctx, _parentState);\n\t\tlet _prevctx: StringExprContext = localctx;\n\t\tlet _startState: number = 6;\n\t\tthis.enterRecursionRule(localctx, 6, IfcExpressionParser.RULE_stringExpr, _p);\n\t\ttry {\n\t\t\tlet _alt: number;\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 58;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 18:\n\t\t\t\t{\n\t\t\t\tlocalctx = new StringLiteralContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\n\t\t\t\tthis.state = 55;\n\t\t\t\tthis.match(IfcExpressionParser.QUOTED_STRING);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 20:\n\t\t\t\t{\n\t\t\t\tlocalctx = new StringFunCallContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 56;\n\t\t\t\tthis.functionCall();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 14:\n\t\t\tcase 15:\n\t\t\t\t{\n\t\t\t\tlocalctx = new StringAttributeRefContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 57;\n\t\t\t\tthis.attributeRef();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NoViableAltException(this);\n\t\t\t}\n\t\t\tthis._ctx.stop = this._input.LT(-1);\n\t\t\tthis.state = 65;\n\t\t\tthis._errHandler.sync(this);\n\t\t\t_alt = this._interp.adaptivePredict(this._input, 5, this._ctx);\n\t\t\twhile (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {\n\t\t\t\tif (_alt === 1) {\n\t\t\t\t\tif (this._parseListeners != null) {\n\t\t\t\t\t\tthis.triggerExitRuleEvent();\n\t\t\t\t\t}\n\t\t\t\t\t_prevctx = localctx;\n\t\t\t\t\t{\n\t\t\t\t\t{\n\t\t\t\t\tlocalctx = new StringConcatContext(this, new StringExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t(localctx as StringConcatContext)._left = _prevctx;\n\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_stringExpr);\n\t\t\t\t\tthis.state = 60;\n\t\t\t\t\tif (!(this.precpred(this._ctx, 3))) {\n\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 3)\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.state = 61;\n\t\t\t\t\tthis.match(IfcExpressionParser.T__2);\n\t\t\t\t\tthis.state = 62;\n\t\t\t\t\t(localctx as StringConcatContext)._right = this.stringExpr(4);\n\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.state = 67;\n\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t_alt = this._interp.adaptivePredict(this._input, 5, this._ctx);\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.unrollRecursionContexts(_parentctx);\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic objectRef(): ObjectRefContext {\n\t\tlet localctx: ObjectRefContext = new ObjectRefContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 8, IfcExpressionParser.RULE_objectRef);\n\t\tlet _la: number;\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 68;\n\t\t\t_la = this._input.LA(1);\n\t\t\tif(!(_la===14 || _la===15)) {\n\t\t\tthis._errHandler.recoverInline(this);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t this.consume();\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic attributeRef(): AttributeRefContext {\n\t\tlet localctx: AttributeRefContext = new AttributeRefContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 10, IfcExpressionParser.RULE_attributeRef);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 70;\n\t\t\tthis.objectRef();\n\t\t\tthis.state = 71;\n\t\t\tthis.nestedObjectChain();\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic nestedObjectChain(): NestedObjectChainContext {\n\t\tlet localctx: NestedObjectChainContext = new NestedObjectChainContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 12, IfcExpressionParser.RULE_nestedObjectChain);\n\t\ttry {\n\t\t\tthis.state = 79;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 7:\n\t\t\t\tlocalctx = new NestedObjectChainInnerContext(this, localctx);\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 73;\n\t\t\t\tthis.match(IfcExpressionParser.T__6);\n\t\t\t\tthis.state = 74;\n\t\t\t\tthis.namedRef();\n\t\t\t\tthis.state = 75;\n\t\t\t\tthis.nestedObjectChain();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 8:\n\t\t\t\tlocalctx = new NestedObjectChainEndContext(this, localctx);\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 77;\n\t\t\t\tthis.match(IfcExpressionParser.T__7);\n\t\t\t\tthis.state = 78;\n\t\t\t\t(localctx as NestedObjectChainEndContext)._name = this.match(IfcExpressionParser.RESERVED_ATTRIBUTE_NAME);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NoViableAltException(this);\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic namedRef(): NamedRefContext {\n\t\tlet localctx: NamedRefContext = new NamedRefContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 14, IfcExpressionParser.RULE_namedRef);\n\t\ttry {\n\t\t\tthis.state = 84;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 17:\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 81;\n\t\t\t\tlocalctx._name = this.match(IfcExpressionParser.RESERVED_RELATION_NAME);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 19:\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 82;\n\t\t\t\tlocalctx._name = this.match(IfcExpressionParser.BRACKETED_STRING);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 20:\n\t\t\t\tthis.enterOuterAlt(localctx, 3);\n\t\t\t\t{\n\t\t\t\tthis.state = 83;\n\t\t\t\tlocalctx._name = this.match(IfcExpressionParser.IDENTIFIER);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NoViableAltException(this);\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic functionCall(): FunctionCallContext {\n\t\tlet localctx: FunctionCallContext = new FunctionCallContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 16, IfcExpressionParser.RULE_functionCall);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 86;\n\t\t\tlocalctx._name = this.match(IfcExpressionParser.IDENTIFIER);\n\t\t\tthis.state = 87;\n\t\t\tthis.match(IfcExpressionParser.T__4);\n\t\t\tthis.state = 88;\n\t\t\tthis.exprList();\n\t\t\tthis.state = 89;\n\t\t\tthis.match(IfcExpressionParser.T__5);\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic exprList(): ExprListContext {\n\t\tlet localctx: ExprListContext = new ExprListContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 18, IfcExpressionParser.RULE_exprList);\n\t\ttry {\n\t\t\tthis.state = 96;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 8, this._ctx) ) {\n\t\t\tcase 1:\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 91;\n\t\t\t\tthis.expr();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 92;\n\t\t\t\tthis.expr();\n\t\t\t\tthis.state = 93;\n\t\t\t\tthis.match(IfcExpressionParser.T__8);\n\t\t\t\tthis.state = 94;\n\t\t\t\tthis.exprList();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic array(): ArrayContext {\n\t\tlet localctx: ArrayContext = new ArrayContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 20, IfcExpressionParser.RULE_array);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 98;\n\t\t\tthis.match(IfcExpressionParser.T__9);\n\t\t\tthis.state = 99;\n\t\t\tthis.arrayElementList();\n\t\t\tthis.state = 100;\n\t\t\tthis.match(IfcExpressionParser.T__10);\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic arrayElementList(): ArrayElementListContext {\n\t\tlet localctx: ArrayElementListContext = new ArrayElementListContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 22, IfcExpressionParser.RULE_arrayElementList);\n\t\ttry {\n\t\t\tthis.state = 107;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 9, this._ctx) ) {\n\t\t\tcase 1:\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 102;\n\t\t\t\tthis.expr();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 103;\n\t\t\t\tthis.expr();\n\t\t\t\tthis.state = 104;\n\t\t\t\tthis.match(IfcExpressionParser.T__8);\n\t\t\t\tthis.state = 105;\n\t\t\t\tthis.arrayElementList();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\n\tpublic sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean {\n\t\tswitch (ruleIndex) {\n\t\tcase 1:\n\t\t\treturn this.numExpr_sempred(localctx as NumExprContext, predIndex);\n\t\tcase 3:\n\t\t\treturn this.stringExpr_sempred(localctx as StringExprContext, predIndex);\n\t\t}\n\t\treturn true;\n\t}\n\tprivate numExpr_sempred(localctx: NumExprContext, predIndex: number): boolean {\n\t\tswitch (predIndex) {\n\t\tcase 0:\n\t\t\treturn this.precpred(this._ctx, 6);\n\t\tcase 1:\n\t\t\treturn this.precpred(this._ctx, 5);\n\t\t}\n\t\treturn true;\n\t}\n\tprivate stringExpr_sempred(localctx: StringExprContext, predIndex: number): boolean {\n\t\tswitch (predIndex) {\n\t\tcase 2:\n\t\t\treturn this.precpred(this._ctx, 3);\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic static readonly _serializedATN: number[] = [4,1,22,110,2,0,7,0,2,\n\t1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,\n\t10,7,10,2,11,7,11,1,0,1,0,1,0,1,0,1,0,3,0,30,8,0,1,1,1,1,1,1,1,1,1,1,1,\n\t1,1,1,1,1,3,1,40,8,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,48,8,1,10,1,12,1,51,9,\n\t1,1,2,1,2,1,3,1,3,1,3,1,3,3,3,59,8,3,1,3,1,3,1,3,5,3,64,8,3,10,3,12,3,67,\n\t9,3,1,4,1,4,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,3,6,80,8,6,1,7,1,7,1,7,\n\t3,7,85,8,7,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,3,9,97,8,9,1,10,1,10,\n\t1,10,1,10,1,11,1,11,1,11,1,11,1,11,3,11,108,8,11,1,11,0,2,2,6,12,0,2,4,\n\t6,8,10,12,14,16,18,20,22,0,4,1,0,1,2,1,0,3,4,1,0,12,13,1,0,14,15,114,0,\n\t29,1,0,0,0,2,39,1,0,0,0,4,52,1,0,0,0,6,58,1,0,0,0,8,68,1,0,0,0,10,70,1,\n\t0,0,0,12,79,1,0,0,0,14,84,1,0,0,0,16,86,1,0,0,0,18,96,1,0,0,0,20,98,1,0,\n\t0,0,22,107,1,0,0,0,24,30,3,10,5,0,25,30,3,16,8,0,26,30,3,2,1,0,27,30,3,\n\t20,10,0,28,30,3,6,3,0,29,24,1,0,0,0,29,25,1,0,0,0,29,26,1,0,0,0,29,27,1,\n\t0,0,0,29,28,1,0,0,0,30,1,1,0,0,0,31,32,6,1,-1,0,32,40,3,4,2,0,33,34,5,5,\n\t0,0,34,35,3,2,1,0,35,36,5,6,0,0,36,40,1,0,0,0,37,40,3,16,8,0,38,40,3,10,\n\t5,0,39,31,1,0,0,0,39,33,1,0,0,0,39,37,1,0,0,0,39,38,1,0,0,0,40,49,1,0,0,\n\t0,41,42,10,6,0,0,42,43,7,0,0,0,43,48,3,2,1,7,44,45,10,5,0,0,45,46,7,1,0,\n\t0,46,48,3,2,1,6,47,41,1,0,0,0,47,44,1,0,0,0,48,51,1,0,0,0,49,47,1,0,0,0,\n\t49,50,1,0,0,0,50,3,1,0,0,0,51,49,1,0,0,0,52,53,7,2,0,0,53,5,1,0,0,0,54,\n\t55,6,3,-1,0,55,59,5,18,0,0,56,59,3,16,8,0,57,59,3,10,5,0,58,54,1,0,0,0,\n\t58,56,1,0,0,0,58,57,1,0,0,0,59,65,1,0,0,0,60,61,10,3,0,0,61,62,5,3,0,0,\n\t62,64,3,6,3,4,63,60,1,0,0,0,64,67,1,0,0,0,65,63,1,0,0,0,65,66,1,0,0,0,66,\n\t7,1,0,0,0,67,65,1,0,0,0,68,69,7,3,0,0,69,9,1,0,0,0,70,71,3,8,4,0,71,72,\n\t3,12,6,0,72,11,1,0,0,0,73,74,5,7,0,0,74,75,3,14,7,0,75,76,3,12,6,0,76,80,\n\t1,0,0,0,77,78,5,8,0,0,78,80,5,16,0,0,79,73,1,0,0,0,79,77,1,0,0,0,80,13,\n\t1,0,0,0,81,85,5,17,0,0,82,85,5,19,0,0,83,85,5,20,0,0,84,81,1,0,0,0,84,82,\n\t1,0,0,0,84,83,1,0,0,0,85,15,1,0,0,0,86,87,5,20,0,0,87,88,5,5,0,0,88,89,\n\t3,18,9,0,89,90,5,6,0,0,90,17,1,0,0,0,91,97,3,0,0,0,92,93,3,0,0,0,93,94,\n\t5,9,0,0,94,95,3,18,9,0,95,97,1,0,0,0,96,91,1,0,0,0,96,92,1,0,0,0,97,19,\n\t1,0,0,0,98,99,5,10,0,0,99,100,3,22,11,0,100,101,5,11,0,0,101,21,1,0,0,0,\n\t102,108,3,0,0,0,103,104,3,0,0,0,104,105,5,9,0,0,105,106,3,22,11,0,106,108,\n\t1,0,0,0,107,102,1,0,0,0,107,103,1,0,0,0,108,23,1,0,0,0,10,29,39,47,49,58,\n\t65,79,84,96,107];\n\n\tprivate static __ATN: ATN;\n\tpublic static get _ATN(): ATN {\n\t\tif (!IfcExpressionParser.__ATN) {\n\t\t\tIfcExpressionParser.__ATN = new ATNDeserializer().deserialize(IfcExpressionParser._serializedATN);\n\t\t}\n\n\t\treturn IfcExpressionParser.__ATN;\n\t}\n\n\n\tstatic DecisionsToDFA = IfcExpressionParser._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) );\n\n}\n\nexport class ExprContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic attributeRef(): AttributeRefContext {\n\t\treturn this.getTypedRuleContext(AttributeRefContext, 0) as AttributeRefContext;\n\t}\n\tpublic functionCall(): FunctionCallContext {\n\t\treturn this.getTypedRuleContext(FunctionCallContext, 0) as FunctionCallContext;\n\t}\n\tpublic numExpr(): NumExprContext {\n\t\treturn this.getTypedRuleContext(NumExprContext, 0) as NumExprContext;\n\t}\n\tpublic array(): ArrayContext {\n\t\treturn this.getTypedRuleContext(ArrayContext, 0) as ArrayContext;\n\t}\n\tpublic stringExpr(): StringExprContext {\n\t\treturn this.getTypedRuleContext(StringExprContext, 0) as StringExprContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_expr;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterExpr) {\n\t \t\tlistener.enterExpr(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitExpr) {\n\t \t\tlistener.exitExpr(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitExpr) {\n\t\t\treturn visitor.visitExpr(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class NumExprContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_numExpr;\n\t}\n\tpublic copyFrom(ctx: NumExprContext): void {\n\t\tsuper.copyFrom(ctx);\n\t}\n}\nexport class NumMulDivContext extends NumExprContext {\n\tpublic _op!: Token;\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic numExpr_list(): NumExprContext[] {\n\t\treturn this.getTypedRuleContexts(NumExprContext) as NumExprContext[];\n\t}\n\tpublic numExpr(i: number): NumExprContext {\n\t\treturn this.getTypedRuleContext(NumExprContext, i) as NumExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumMulDiv) {\n\t \t\tlistener.enterNumMulDiv(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumMulDiv) {\n\t \t\tlistener.exitNumMulDiv(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumMulDiv) {\n\t\t\treturn visitor.visitNumMulDiv(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumAddSubContext extends NumExprContext {\n\tpublic _op!: Token;\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic numExpr_list(): NumExprContext[] {\n\t\treturn this.getTypedRuleContexts(NumExprContext) as NumExprContext[];\n\t}\n\tpublic numExpr(i: number): NumExprContext {\n\t\treturn this.getTypedRuleContext(NumExprContext, i) as NumExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumAddSub) {\n\t \t\tlistener.enterNumAddSub(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumAddSub) {\n\t \t\tlistener.exitNumAddSub(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumAddSub) {\n\t\t\treturn visitor.visitNumAddSub(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumParensContext extends NumExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic numExpr(): NumExprContext {\n\t\treturn this.getTypedRuleContext(NumExprContext, 0) as NumExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumParens) {\n\t \t\tlistener.enterNumParens(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumParens) {\n\t \t\tlistener.exitNumParens(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumParens) {\n\t\t\treturn visitor.visitNumParens(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumLitContext extends NumExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic numLiteral(): NumLiteralContext {\n\t\treturn this.getTypedRuleContext(NumLiteralContext, 0) as NumLiteralContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumLit) {\n\t \t\tlistener.enterNumLit(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumLit) {\n\t \t\tlistener.exitNumLit(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumLit) {\n\t\t\treturn visitor.visitNumLit(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumFunCallContext extends NumExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic functionCall(): FunctionCallContext {\n\t\treturn this.getTypedRuleContext(FunctionCallContext, 0) as FunctionCallContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumFunCall) {\n\t \t\tlistener.enterNumFunCall(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumFunCall) {\n\t \t\tlistener.exitNumFunCall(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumFunCall) {\n\t\t\treturn visitor.visitNumFunCall(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumAttributeRefContext extends NumExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic attributeRef(): AttributeRefContext {\n\t\treturn this.getTypedRuleContext(AttributeRefContext, 0) as AttributeRefContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumAttributeRef) {\n\t \t\tlistener.enterNumAttributeRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumAttributeRef) {\n\t \t\tlistener.exitNumAttributeRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumAttributeRef) {\n\t\t\treturn visitor.visitNumAttributeRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class NumLiteralContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic INT(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.INT, 0);\n\t}\n\tpublic FLOAT(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.FLOAT, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_numLiteral;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumLiteral) {\n\t \t\tlistener.enterNumLiteral(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumLiteral) {\n\t \t\tlistener.exitNumLiteral(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumLiteral) {\n\t\t\treturn visitor.visitNumLiteral(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class StringExprContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_stringExpr;\n\t}\n\tpublic copyFrom(ctx: StringExprContext): void {\n\t\tsuper.copyFrom(ctx);\n\t}\n}\nexport class StringAttributeRefContext extends StringExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: StringExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic attributeRef(): AttributeRefContext {\n\t\treturn this.getTypedRuleContext(AttributeRefContext, 0) as AttributeRefContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterStringAttributeRef) {\n\t \t\tlistener.enterStringAttributeRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitStringAttributeRef) {\n\t \t\tlistener.exitStringAttributeRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitStringAttributeRef) {\n\t\t\treturn visitor.visitStringAttributeRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class StringLiteralContext extends StringExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: StringExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic QUOTED_STRING(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.QUOTED_STRING, 0);\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterStringLiteral) {\n\t \t\tlistener.enterStringLiteral(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitStringLiteral) {\n\t \t\tlistener.exitStringLiteral(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitStringLiteral) {\n\t\t\treturn visitor.visitStringLiteral(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class StringFunCallContext extends StringExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: StringExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic functionCall(): FunctionCallContext {\n\t\treturn this.getTypedRuleContext(FunctionCallContext, 0) as FunctionCallContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterStringFunCall) {\n\t \t\tlistener.enterStringFunCall(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitStringFunCall) {\n\t \t\tlistener.exitStringFunCall(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitStringFunCall) {\n\t\t\treturn visitor.visitStringFunCall(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class StringConcatContext extends StringExprContext {\n\tpublic _left!: StringExprContext;\n\tpublic _right!: StringExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: StringExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic stringExpr_list(): StringExprContext[] {\n\t\treturn this.getTypedRuleContexts(StringExprContext) as StringExprContext[];\n\t}\n\tpublic stringExpr(i: number): StringExprContext {\n\t\treturn this.getTypedRuleContext(StringExprContext, i) as StringExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterStringConcat) {\n\t \t\tlistener.enterStringConcat(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitStringConcat) {\n\t \t\tlistener.exitStringConcat(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitStringConcat) {\n\t\t\treturn visitor.visitStringConcat(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class ObjectRefContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic PROP(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.PROP, 0);\n\t}\n\tpublic ELEM(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.ELEM, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_objectRef;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterObjectRef) {\n\t \t\tlistener.enterObjectRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitObjectRef) {\n\t \t\tlistener.exitObjectRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitObjectRef) {\n\t\t\treturn visitor.visitObjectRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class AttributeRefContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic objectRef(): ObjectRefContext {\n\t\treturn this.getTypedRuleContext(ObjectRefContext, 0) as ObjectRefContext;\n\t}\n\tpublic nestedObjectChain(): NestedObjectChainContext {\n\t\treturn this.getTypedRuleContext(NestedObjectChainContext, 0) as NestedObjectChainContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_attributeRef;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterAttributeRef) {\n\t \t\tlistener.enterAttributeRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitAttributeRef) {\n\t \t\tlistener.exitAttributeRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitAttributeRef) {\n\t\t\treturn visitor.visitAttributeRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class NestedObjectChainContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_nestedObjectChain;\n\t}\n\tpublic copyFrom(ctx: NestedObjectChainContext): void {\n\t\tsuper.copyFrom(ctx);\n\t}\n}\nexport class NestedObjectChainEndContext extends NestedObjectChainContext {\n\tpublic _name!: Token;\n\tconstructor(parser: IfcExpressionParser, ctx: NestedObjectChainContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic RESERVED_ATTRIBUTE_NAME(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.RESERVED_ATTRIBUTE_NAME, 0);\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNestedObjectChainEnd) {\n\t \t\tlistener.enterNestedObjectChainEnd(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNestedObjectChainEnd) {\n\t \t\tlistener.exitNestedObjectChainEnd(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNestedObjectChainEnd) {\n\t\t\treturn visitor.visitNestedObjectChainEnd(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NestedObjectChainInnerContext extends NestedObjectChainContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NestedObjectChainContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic namedRef(): NamedRefContext {\n\t\treturn this.getTypedRuleContext(NamedRefContext, 0) as NamedRefContext;\n\t}\n\tpublic nestedObjectChain(): NestedObjectChainContext {\n\t\treturn this.getTypedRuleContext(NestedObjectChainContext, 0) as NestedObjectChainContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNestedObjectChainInner) {\n\t \t\tlistener.enterNestedObjectChainInner(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNestedObjectChainInner) {\n\t \t\tlistener.exitNestedObjectChainInner(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNestedObjectChainInner) {\n\t\t\treturn visitor.visitNestedObjectChainInner(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class NamedRefContext extends ParserRuleContext {\n\tpublic _name!: Token;\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic RESERVED_RELATION_NAME(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.RESERVED_RELATION_NAME, 0);\n\t}\n\tpublic BRACKETED_STRING(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.BRACKETED_STRING, 0);\n\t}\n\tpublic IDENTIFIER(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.IDENTIFIER, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_namedRef;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNamedRef) {\n\t \t\tlistener.enterNamedRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNamedRef) {\n\t \t\tlistener.exitNamedRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNamedRef) {\n\t\t\treturn visitor.visitNamedRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class FunctionCallContext extends ParserRuleContext {\n\tpublic _name!: Token;\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic exprList(): ExprListContext {\n\t\treturn this.getTypedRuleContext(ExprListContext, 0) as ExprListContext;\n\t}\n\tpublic IDENTIFIER(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.IDENTIFIER, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_functionCall;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterFunctionCall) {\n\t \t\tlistener.enterFunctionCall(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitFunctionCall) {\n\t \t\tlistener.exitFunctionCall(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitFunctionCall) {\n\t\t\treturn visitor.visitFunctionCall(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class ExprListContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic expr(): ExprContext {\n\t\treturn this.getTypedRuleContext(ExprContext, 0) as ExprContext;\n\t}\n\tpublic exprList(): ExprListContext {\n\t\treturn this.getTypedRuleContext(ExprListContext, 0) as ExprListContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_exprList;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterExprList) {\n\t \t\tlistener.enterExprList(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitExprList) {\n\t \t\tlistener.exitExprList(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitExprList) {\n\t\t\treturn visitor.visitExprList(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class ArrayContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic arrayElementList(): ArrayElementListContext {\n\t\treturn this.getTypedRuleContext(ArrayElementListContext, 0) as ArrayElementListContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_array;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterArray) {\n\t \t\tlistener.enterArray(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitArray) {\n\t \t\tlistener.exitArray(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitArray) {\n\t\t\treturn visitor.visitArray(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class ArrayElementListContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic expr(): ExprContext {\n\t\treturn this.getTypedRuleContext(ExprContext, 0) as ExprContext;\n\t}\n\tpublic arrayElementList(): ArrayElementListContext {\n\t\treturn this.getTypedRuleContext(ArrayElementListContext, 0) as ArrayElementListContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_arrayElementList;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterArrayElementList) {\n\t \t\tlistener.enterArrayElementList(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitArrayElementList) {\n\t \t\tlistener.exitArrayElementList(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitArrayElementList) {\n\t\t\treturn visitor.visitArrayElementList(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n"]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ // Generated from IfcExpression.g4 by ANTLR 4.13.0
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const antlr4_1 = require("antlr4");
5
+ /**
6
+ * This interface defines a complete generic visitor for a parse tree produced
7
+ * by `IfcExpressionParser`.
8
+ *
9
+ * @param <Result> The return type of the visit operation. Use `void` for
10
+ * operations with no return type.
11
+ */
12
+ class IfcExpressionVisitor extends antlr4_1.ParseTreeVisitor {
13
+ }
14
+ exports.default = IfcExpressionVisitor;
15
+ //# sourceMappingURL=IfcExpressionVisitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../generated/parser/IfcExpressionVisitor.ts"],"names":[],"mappings":";AAAA,kDAAkD;;AAElD,mCAAwC;AA0BxC;;;;;;GAMG;AACH,MAAqB,oBAA6B,SAAQ,yBAAwB;CA2IjF;AA3ID,uCA2IC","file":"parser/IfcExpressionVisitor.js","sourcesContent":["// Generated from IfcExpression.g4 by ANTLR 4.13.0\n\nimport {ParseTreeVisitor} from 'antlr4';\n\n\nimport { ExprContext } from \"./IfcExpressionParser\";\nimport { NumMulDivContext } from \"./IfcExpressionParser\";\nimport { NumAddSubContext } from \"./IfcExpressionParser\";\nimport { NumParensContext } from \"./IfcExpressionParser\";\nimport { NumLitContext } from \"./IfcExpressionParser\";\nimport { NumFunCallContext } from \"./IfcExpressionParser\";\nimport { NumAttributeRefContext } from \"./IfcExpressionParser\";\nimport { NumLiteralContext } from \"./IfcExpressionParser\";\nimport { StringAttributeRefContext } from \"./IfcExpressionParser\";\nimport { StringLiteralContext } from \"./IfcExpressionParser\";\nimport { StringFunCallContext } from \"./IfcExpressionParser\";\nimport { StringConcatContext } from \"./IfcExpressionParser\";\nimport { ObjectRefContext } from \"./IfcExpressionParser\";\nimport { AttributeRefContext } from \"./IfcExpressionParser\";\nimport { NestedObjectChainInnerContext } from \"./IfcExpressionParser\";\nimport { NestedObjectChainEndContext } from \"./IfcExpressionParser\";\nimport { NamedRefContext } from \"./IfcExpressionParser\";\nimport { FunctionCallContext } from \"./IfcExpressionParser\";\nimport { ExprListContext } from \"./IfcExpressionParser\";\nimport { ArrayContext } from \"./IfcExpressionParser\";\nimport { ArrayElementListContext } from \"./IfcExpressionParser\";\n\n\n/**\n * This interface defines a complete generic visitor for a parse tree produced\n * by `IfcExpressionParser`.\n *\n * @param <Result> The return type of the visit operation. Use `void` for\n * operations with no return type.\n */\nexport default class IfcExpressionVisitor<Result> extends ParseTreeVisitor<Result> {\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.expr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitExpr?: (ctx: ExprContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numMulDiv`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumMulDiv?: (ctx: NumMulDivContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numAddSub`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumAddSub?: (ctx: NumAddSubContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numParens`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumParens?: (ctx: NumParensContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numLit`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumLit?: (ctx: NumLitContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numFunCall`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumFunCall?: (ctx: NumFunCallContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numAttributeRef`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumAttributeRef?: (ctx: NumAttributeRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.numLiteral`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumLiteral?: (ctx: NumLiteralContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `stringAttributeRef`\n\t * labeled alternative in `IfcExpressionParser.stringExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitStringAttributeRef?: (ctx: StringAttributeRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `stringLiteral`\n\t * labeled alternative in `IfcExpressionParser.stringExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitStringLiteral?: (ctx: StringLiteralContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `stringFunCall`\n\t * labeled alternative in `IfcExpressionParser.stringExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitStringFunCall?: (ctx: StringFunCallContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `stringConcat`\n\t * labeled alternative in `IfcExpressionParser.stringExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitStringConcat?: (ctx: StringConcatContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.objectRef`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitObjectRef?: (ctx: ObjectRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.attributeRef`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitAttributeRef?: (ctx: AttributeRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `nestedObjectChainInner`\n\t * labeled alternative in `IfcExpressionParser.nestedObjectChain`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNestedObjectChainInner?: (ctx: NestedObjectChainInnerContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `nestedObjectChainEnd`\n\t * labeled alternative in `IfcExpressionParser.nestedObjectChain`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNestedObjectChainEnd?: (ctx: NestedObjectChainEndContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.namedRef`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNamedRef?: (ctx: NamedRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.functionCall`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitFunctionCall?: (ctx: FunctionCallContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.exprList`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitExprList?: (ctx: ExprListContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.array`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitArray?: (ctx: ArrayContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.arrayElementList`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitArrayElementList?: (ctx: ArrayElementListContext) => Result;\n}\n\n"]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notNullish = exports.nullish = void 0;
4
+ function nullish(val) {
5
+ return typeof val !== "undefined" && val !== null;
6
+ }
7
+ exports.nullish = nullish;
8
+ function notNullish(val) {
9
+ return nullish(val);
10
+ }
11
+ exports.notNullish = notNullish;
12
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,GAAQ;IAC9B,OAAO,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,CAAC;AACpD,CAAC;AAFD,0BAEC;AAED,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAFD,gCAEC","file":"utils.js","sourcesContent":["export function nullish(val: any) {\n return typeof val !== \"undefined\" && val !== null;\n}\n\nexport function notNullish(val: any): boolean {\n return nullish(val);\n}\n"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BooleanValue = void 0;
4
+ const Value_1 = require("./Value");
5
+ class BooleanValue extends Value_1.Value {
6
+ constructor(value) {
7
+ super(value);
8
+ }
9
+ static of(value) {
10
+ return new BooleanValue(value);
11
+ }
12
+ }
13
+ exports.BooleanValue = BooleanValue;
14
+ //# sourceMappingURL=BooleanValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/BooleanValue.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,MAAa,YAAa,SAAQ,aAAc;IAC9C,YAAY,KAAc;QACxB,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAc;QAC7B,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF;AARD,oCAQC","file":"value/BooleanValue.js","sourcesContent":["import { Value } from \"./Value\";\n\nexport class BooleanValue extends Value<boolean> {\n constructor(value: boolean) {\n super(value);\n }\n\n public static of(value: boolean): BooleanValue {\n return new BooleanValue(value);\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LiteralValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/LiteralValue.ts"],"names":[],"mappings":"","file":"value/LiteralValue.js","sourcesContent":["import { NumericValue } from \"./NumericValue\";\nimport { StringValue } from \"./StringValue\";\nimport { BooleanValue } from \"./BooleanValue\";\nimport { LogicalValue } from \"./LogicalValue\";\nimport { ReferenceValue } from \"./ReferenceValue\";\n\nexport type LiteralValue =\n | NumericValue\n | StringValue\n | BooleanValue\n | LogicalValue\n | ReferenceValue;\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LiteralValueAnyArity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/LiteralValueAnyArity.ts"],"names":[],"mappings":"","file":"value/LiteralValueAnyArity.js","sourcesContent":["import { LiteralValue } from \"./LiteralValue\";\n\nexport type LiteralValueAnyArity =\n | LiteralValue\n | Array<LiteralValue>\n | Array<Array<LiteralValue>>;\n"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogicalValue = void 0;
4
+ const Value_1 = require("./Value");
5
+ class LogicalValue extends Value_1.Value {
6
+ constructor(value) {
7
+ super(value);
8
+ }
9
+ static of(value) {
10
+ return new LogicalValue(value);
11
+ }
12
+ }
13
+ exports.LogicalValue = LogicalValue;
14
+ //# sourceMappingURL=LogicalValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/LogicalValue.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,MAAa,YAAa,SAAQ,aAA0B;IAC1D,YAAY,KAA0B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAA0B;QACzC,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF;AARD,oCAQC","file":"value/LogicalValue.js","sourcesContent":["import { Value } from \"./Value\";\n\nexport class LogicalValue extends Value<boolean | \"UNKNOWN\"> {\n constructor(value: boolean | \"UNKNOWN\") {\n super(value);\n }\n\n public static of(value: boolean | \"UNKNOWN\"): LogicalValue {\n return new LogicalValue(value);\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NumericValue = void 0;
7
+ const Value_1 = require("./Value");
8
+ const decimal_js_1 = __importDefault(require("decimal.js"));
9
+ class NumericValue extends Value_1.Value {
10
+ constructor(value) {
11
+ super(value instanceof decimal_js_1.default ? value : new decimal_js_1.default(value));
12
+ }
13
+ static of(value) {
14
+ return new NumericValue(value);
15
+ }
16
+ }
17
+ exports.NumericValue = NumericValue;
18
+ //# sourceMappingURL=NumericValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/NumericValue.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAgC;AAChC,4DAAiC;AAEjC,MAAa,YAAa,SAAQ,aAAc;IAC9C,YAAY,KAAgC;QAC1C,KAAK,CAAC,KAAK,YAAY,oBAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAgC;QAC/C,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF;AARD,oCAQC","file":"value/NumericValue.js","sourcesContent":["import { Value } from \"./Value\";\nimport Decimal from \"decimal.js\";\n\nexport class NumericValue extends Value<Decimal> {\n constructor(value: string | number | Decimal) {\n super(value instanceof Decimal ? value : new Decimal(value));\n }\n\n public static of(value: string | number | Decimal): NumericValue {\n return new NumericValue(value);\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=PrimitiveValueType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/PrimitiveValueType.ts"],"names":[],"mappings":"","file":"value/PrimitiveValueType.js","sourcesContent":["import Decimal from \"decimal.js\";\n\nexport type PrimitiveValueType = Decimal | string | boolean | undefined;\n"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReferenceValue = void 0;
4
+ const Value_1 = require("./Value");
5
+ class ReferenceValue extends Value_1.Value {
6
+ constructor(value) {
7
+ super(value);
8
+ }
9
+ static of(value) {
10
+ return new ReferenceValue(value);
11
+ }
12
+ }
13
+ exports.ReferenceValue = ReferenceValue;
14
+ //# sourceMappingURL=ReferenceValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/ReferenceValue.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,MAAa,cAAe,SAAQ,aAAa;IAC/C,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAa;QAC5B,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AARD,wCAQC","file":"value/ReferenceValue.js","sourcesContent":["import { Value } from \"./Value\";\n\nexport class ReferenceValue extends Value<string> {\n constructor(value: string) {\n super(value);\n }\n\n public static of(value: string): ReferenceValue {\n return new ReferenceValue(value);\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringValue = void 0;
4
+ const Value_1 = require("./Value");
5
+ class StringValue extends Value_1.Value {
6
+ constructor(value) {
7
+ super(value);
8
+ }
9
+ static of(value) {
10
+ return new StringValue(value);
11
+ }
12
+ }
13
+ exports.StringValue = StringValue;
14
+ //# sourceMappingURL=StringValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/StringValue.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,MAAa,WAAY,SAAQ,aAAa;IAC5C,YAAY,KAAa;QACvB,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAa;QAC5B,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF;AARD,kCAQC","file":"value/StringValue.js","sourcesContent":["import { Value } from \"./Value\";\n\nexport class StringValue extends Value<string> {\n constructor(value: string) {\n super(value);\n }\n\n public static of(value: string): StringValue {\n return new StringValue(value);\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Value = void 0;
4
+ class Value {
5
+ constructor(value) {
6
+ this.value = value;
7
+ }
8
+ getValue() {
9
+ return this.value;
10
+ }
11
+ }
12
+ exports.Value = Value;
13
+ //# sourceMappingURL=Value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/value/Value.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;IAGhB,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAVD,sBAUC","file":"value/Value.js","sourcesContent":["import { PrimitiveValueType } from \"./PrimitiveValueType\";\n\nexport class Value<T extends PrimitiveValueType> {\n private readonly value: T;\n\n constructor(value: T) {\n this.value = value;\n }\n\n public getValue(): T {\n return this.value;\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import { ObjectAccessor } from "./ObjectAccessor";
2
+ import { IfcRootObjectAccessor } from "./IfcRootObjectAccessor";
3
+ import { IfcTypeObjectAccessor } from "./IfcTypeObjectAccessor";
4
+ import { IfcPropertyAccessor } from "./IfcPropertyAccessor";
5
+ import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity";
6
+ import { IfcPropertySetAccessor } from "./IfcPropertySetAccessor";
7
+ export declare abstract class IfcElementAccessor extends IfcRootObjectAccessor {
8
+ getNestedObjectAccessor(name: string): ObjectAccessor | undefined;
9
+ getAttribute(name: string): LiteralValueAnyArity | undefined;
10
+ abstract getIfcClass(): string;
11
+ listNestedObjects(): Array<string>;
12
+ listAttributes(): Array<string>;
13
+ abstract listIfcProperties(): Array<string>;
14
+ abstract listIfcPropertySets(): Array<string>;
15
+ abstract getTypeObjectAccessor(): IfcTypeObjectAccessor | undefined;
16
+ abstract getIfcPropertyAccessor(propertyName: string): IfcPropertyAccessor | undefined;
17
+ abstract getIfcPropertySetAccessor(name: string): IfcPropertySetAccessor | undefined;
18
+ }
@@ -0,0 +1,6 @@
1
+ import { IfcPropertyAccessor } from "./IfcPropertyAccessor";
2
+ import { IfcElementAccessor } from "./IfcElementAccessor";
3
+ export interface IfcExpressionContext {
4
+ resolvePropRef(): IfcPropertyAccessor;
5
+ resolveElemRef(): IfcElementAccessor;
6
+ }
@@ -0,0 +1,12 @@
1
+ import { ObjectAccessor } from "./ObjectAccessor";
2
+ import { NamedObjectAccessor } from "./NamedObjectAccessor";
3
+ import { IfcPropertySetAccessor } from "./IfcPropertySetAccessor";
4
+ import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity";
5
+ export declare abstract class IfcPropertyAccessor extends NamedObjectAccessor {
6
+ getNestedObjectAccessor(name: string): ObjectAccessor | undefined;
7
+ listNestedObjects(): Array<string>;
8
+ listAttributes(): Array<string>;
9
+ getAttribute(name: string): LiteralValueAnyArity | undefined;
10
+ protected abstract getValue(): LiteralValueAnyArity;
11
+ protected abstract getPropertySetAccessor(): IfcPropertySetAccessor;
12
+ }
@@ -0,0 +1,11 @@
1
+ import { IfcRootObjectAccessor } from "./IfcRootObjectAccessor";
2
+ import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity";
3
+ import { IfcPropertyAccessor } from "./IfcPropertyAccessor";
4
+ import { ObjectAccessor } from "./ObjectAccessor";
5
+ export declare abstract class IfcPropertySetAccessor extends IfcRootObjectAccessor {
6
+ listAttributes(): Array<string>;
7
+ getAttribute(name: string): LiteralValueAnyArity | undefined;
8
+ getNestedObjectAccessor(name: string): ObjectAccessor | undefined;
9
+ protected abstract listIfcProperties(): Array<string>;
10
+ protected abstract getIfcPropertyAccessor(name: string): IfcPropertyAccessor | undefined;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { NamedObjectAccessor } from "./NamedObjectAccessor";
2
+ import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity";
3
+ export declare abstract class IfcRootObjectAccessor extends NamedObjectAccessor {
4
+ getAttribute(name: string): LiteralValueAnyArity | undefined;
5
+ abstract getGuid(): string;
6
+ listAttributes(): Array<string>;
7
+ }
@@ -0,0 +1,13 @@
1
+ import { ObjectAccessor } from "./ObjectAccessor";
2
+ import { IfcRootObjectAccessor } from "./IfcRootObjectAccessor";
3
+ import { IfcPropertySetAccessor } from "./IfcPropertySetAccessor";
4
+ import { IfcPropertyAccessor } from "./IfcPropertyAccessor";
5
+ export declare abstract class IfcTypeObjectAccessor extends IfcRootObjectAccessor {
6
+ getNestedObjectAccessor(name: string): ObjectAccessor | undefined;
7
+ listNestedObjects(): Array<string>;
8
+ listAttributes(): Array<string>;
9
+ protected abstract getIfcPropertySetAccessor(name: string): IfcPropertySetAccessor | undefined;
10
+ protected abstract getIfcPropertyAccessor(name: string): IfcPropertyAccessor | undefined;
11
+ abstract listIfcPropertySetNames(): Array<string>;
12
+ abstract listIfcPropertyNames(): Array<string>;
13
+ }
@@ -0,0 +1,10 @@
1
+ import { ObjectAccessor } from "./ObjectAccessor";
2
+ import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity";
3
+ export declare abstract class NamedObjectAccessor implements ObjectAccessor {
4
+ abstract getName(): string;
5
+ abstract getDescription(): string;
6
+ getAttribute(name: string): LiteralValueAnyArity | undefined;
7
+ listAttributes(): Array<string>;
8
+ getNestedObjectAccessor(name: string): ObjectAccessor | undefined;
9
+ listNestedObjects(): Array<string>;
10
+ }
@@ -0,0 +1,16 @@
1
+ import { LiteralValueAnyArity } from "../value/LiteralValueAnyArity";
2
+ export interface ObjectAccessor {
3
+ /**
4
+ * If there is a nested object with the specified name (.e.g the 'pset' in $prop.pset),
5
+ * return an ObjectAccessor for it.
6
+ * @param name
7
+ */
8
+ getNestedObjectAccessor(name: string): ObjectAccessor | undefined;
9
+ /**
10
+ * If the object has the attribute of the specified name, return it as (an array of (array of)) LiteralValue.
11
+ * @param name
12
+ */
13
+ getAttribute(name: string): LiteralValueAnyArity | undefined;
14
+ listNestedObjects(): Array<string>;
15
+ listAttributes(): Array<string>;
16
+ }
@@ -0,0 +1,3 @@
1
+ export interface ArrayExpr<T> {
2
+ evaluate(): Array<T>;
3
+ }
@@ -0,0 +1,4 @@
1
+ import { IfcExpressionContext } from "../context/IfcExpressionContext";
2
+ export interface Expr<T> {
3
+ evaluate(ctx: IfcExpressionContext): T;
4
+ }
@@ -0,0 +1,6 @@
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;
6
+ }
@@ -0,0 +1,7 @@
1
+ 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;
7
+ }
@@ -0,0 +1,8 @@
1
+ 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;
8
+ }
@@ -0,0 +1,3 @@
1
+ export declare class IfcExpressionEvaluationException extends Error {
2
+ constructor(message: string);
3
+ }
@@ -0,0 +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 DivideExpr extends Expr2<Expr<NumericValue>, Expr<NumericValue>, NumericValue> {
6
+ constructor(left: Expr<NumericValue>, right: Expr<NumericValue>);
7
+ evaluate(ctx: IfcExpressionContext): NumericValue;
8
+ }