ifc-expressions 2.3.0 → 3.0.0-beta.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 (185) hide show
  1. package/README.md +255 -30
  2. package/dist/IfcExpression.d.ts +24 -26
  3. package/dist/IfcExpressionErrorListener.d.ts +3 -3
  4. package/dist/IfcExpressionOptions.d.ts +4 -0
  5. package/dist/autocomplete/CompletionItem.d.ts +24 -0
  6. package/dist/autocomplete/IfcExpressionAutocomplete.d.ts +11 -0
  7. package/dist/builtin/BuiltinRuntimeValueConverter.d.ts +7 -0
  8. package/dist/builtin/BuiltinVariableRegistry.d.ts +50 -0
  9. package/dist/cjs/IfcExpression.js +112 -37
  10. package/dist/cjs/IfcExpression.js.map +1 -1
  11. package/dist/cjs/IfcExpressionErrorListener.js +3 -8
  12. package/dist/cjs/IfcExpressionErrorListener.js.map +1 -1
  13. package/dist/cjs/IfcExpressionOptions.js +3 -0
  14. package/dist/cjs/IfcExpressionOptions.js.map +1 -0
  15. package/dist/cjs/autocomplete/CompletionItem.js +3 -0
  16. package/dist/cjs/autocomplete/CompletionItem.js.map +1 -0
  17. package/dist/cjs/autocomplete/IfcExpressionAutocomplete.js +654 -0
  18. package/dist/cjs/autocomplete/IfcExpressionAutocomplete.js.map +1 -0
  19. package/dist/cjs/builtin/BuiltinRuntimeValueConverter.js +124 -0
  20. package/dist/cjs/builtin/BuiltinRuntimeValueConverter.js.map +1 -0
  21. package/dist/cjs/builtin/BuiltinVariableRegistry.js +405 -0
  22. package/dist/cjs/builtin/BuiltinVariableRegistry.js.map +1 -0
  23. package/dist/cjs/compiler/ExprCompiler.js +44 -41
  24. package/dist/cjs/compiler/ExprCompiler.js.map +1 -1
  25. package/dist/cjs/compiler/ExprManager.js.map +1 -1
  26. package/dist/cjs/compiler/IfcExpressionValidationListener.js +85 -25
  27. package/dist/cjs/compiler/IfcExpressionValidationListener.js.map +1 -1
  28. package/dist/cjs/compiler/TypeManager.js.map +1 -1
  29. package/dist/cjs/context/IfcExpressionContext.js.map +1 -1
  30. package/dist/cjs/context/NopContext.js +3 -0
  31. package/dist/cjs/context/NopContext.js.map +1 -1
  32. package/dist/cjs/documentation/Documentation.js +11 -0
  33. package/dist/cjs/documentation/Documentation.js.map +1 -0
  34. package/dist/cjs/error/ExpressionTypeError.js.map +1 -1
  35. package/dist/cjs/error/IfcExpressionBuiltinConfigException.js +10 -0
  36. package/dist/cjs/error/IfcExpressionBuiltinConfigException.js.map +1 -0
  37. package/dist/cjs/error/InvalidSyntaxException.js.map +1 -1
  38. package/dist/cjs/error/NoSuchFunctionException.js.map +1 -1
  39. package/dist/cjs/error/NoSuchMemberException.js +13 -0
  40. package/dist/cjs/error/NoSuchMemberException.js.map +1 -0
  41. package/dist/cjs/error/ValidationException.js.map +1 -1
  42. package/dist/cjs/error/WrongFunctionArgumentTypeException.js.map +1 -1
  43. package/dist/cjs/expression/ExprKind.js +3 -0
  44. package/dist/cjs/expression/ExprKind.js.map +1 -1
  45. package/dist/cjs/expression/function/Func.js +18 -14
  46. package/dist/cjs/expression/function/Func.js.map +1 -1
  47. package/dist/cjs/expression/function/FuncArg.js +11 -5
  48. package/dist/cjs/expression/function/FuncArg.js.map +1 -1
  49. package/dist/cjs/expression/function/IfcExpressionFunctions.js +198 -42
  50. package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -1
  51. package/dist/cjs/expression/function/impl/CHOOSE.js.map +1 -1
  52. package/dist/cjs/expression/function/impl/IF.js.map +1 -1
  53. package/dist/cjs/expression/function/impl/MAP.js.map +1 -1
  54. package/dist/cjs/expression/function/impl/ReplacePattern.js +20 -2
  55. package/dist/cjs/expression/function/impl/ReplacePattern.js.map +1 -1
  56. package/dist/cjs/expression/reference/BuiltinFunctionCallExpr.js +59 -0
  57. package/dist/cjs/expression/reference/BuiltinFunctionCallExpr.js.map +1 -0
  58. package/dist/cjs/expression/reference/BuiltinPropertyAccessExpr.js +34 -0
  59. package/dist/cjs/expression/reference/BuiltinPropertyAccessExpr.js.map +1 -0
  60. package/dist/cjs/expression/reference/BuiltinRootReferenceExpr.js +29 -0
  61. package/dist/cjs/expression/reference/BuiltinRootReferenceExpr.js.map +1 -0
  62. package/dist/cjs/gen/parser/IfcExpressionLexer.js +126 -104
  63. package/dist/cjs/gen/parser/IfcExpressionLexer.js.map +1 -1
  64. package/dist/cjs/gen/parser/IfcExpressionListener.js +7 -4
  65. package/dist/cjs/gen/parser/IfcExpressionListener.js.map +1 -1
  66. package/dist/cjs/gen/parser/IfcExpressionParser.js +739 -682
  67. package/dist/cjs/gen/parser/IfcExpressionParser.js.map +1 -1
  68. package/dist/cjs/gen/parser/IfcExpressionVisitor.js +4 -4
  69. package/dist/cjs/gen/parser/IfcExpressionVisitor.js.map +1 -1
  70. package/dist/cjs/index.js +4 -1
  71. package/dist/cjs/index.js.map +1 -1
  72. package/dist/cjs/type/ContextObjectType.js +45 -0
  73. package/dist/cjs/type/ContextObjectType.js.map +1 -0
  74. package/dist/cjs/type/Types.js +4 -6
  75. package/dist/cjs/type/Types.js.map +1 -1
  76. package/dist/cjs/value/ContextObjectValue.js +23 -0
  77. package/dist/cjs/value/ContextObjectValue.js.map +1 -0
  78. package/dist/cjs/value/ExpressionValue.js.map +1 -1
  79. package/dist/cjs/value/Value.js.map +1 -1
  80. package/dist/compiler/ExprCompiler.d.ts +8 -3
  81. package/dist/compiler/ExprManager.d.ts +1 -1
  82. package/dist/compiler/IfcExpressionValidationListener.d.ts +9 -3
  83. package/dist/compiler/TypeManager.d.ts +1 -1
  84. package/dist/context/IfcExpressionContext.d.ts +3 -4
  85. package/dist/context/NopContext.d.ts +1 -0
  86. package/dist/documentation/Documentation.d.ts +12 -0
  87. package/dist/error/ExpressionTypeError.d.ts +1 -1
  88. package/dist/error/IfcExpressionBuiltinConfigException.d.ts +3 -0
  89. package/dist/error/InvalidSyntaxException.d.ts +1 -1
  90. package/dist/error/NoSuchFunctionException.d.ts +1 -1
  91. package/dist/error/NoSuchMemberException.d.ts +6 -0
  92. package/dist/error/ValidationException.d.ts +1 -1
  93. package/dist/error/WrongFunctionArgumentTypeException.d.ts +1 -1
  94. package/dist/expression/ExprKind.d.ts +3 -0
  95. package/dist/expression/function/Func.d.ts +7 -21
  96. package/dist/expression/function/FuncArg.d.ts +6 -5
  97. package/dist/expression/function/IfcExpressionFunctions.d.ts +1 -0
  98. package/dist/expression/function/impl/CHOOSE.d.ts +1 -1
  99. package/dist/expression/function/impl/IF.d.ts +1 -1
  100. package/dist/expression/function/impl/MAP.d.ts +1 -1
  101. package/dist/expression/reference/BuiltinFunctionCallExpr.d.ts +19 -0
  102. package/dist/expression/reference/BuiltinPropertyAccessExpr.d.ts +15 -0
  103. package/dist/expression/reference/BuiltinRootReferenceExpr.d.ts +14 -0
  104. package/dist/gen/parser/IfcExpressionLexer.d.ts +9 -8
  105. package/dist/gen/parser/IfcExpressionListener.d.ts +89 -59
  106. package/dist/gen/parser/IfcExpressionParser.d.ts +192 -169
  107. package/dist/gen/parser/IfcExpressionVisitor.d.ts +51 -35
  108. package/dist/index.d.ts +2 -2
  109. package/dist/mjs/IfcExpression.js +104 -32
  110. package/dist/mjs/IfcExpression.js.map +1 -1
  111. package/dist/mjs/IfcExpressionErrorListener.js +3 -8
  112. package/dist/mjs/IfcExpressionErrorListener.js.map +1 -1
  113. package/dist/mjs/IfcExpressionOptions.js +2 -0
  114. package/dist/mjs/IfcExpressionOptions.js.map +1 -0
  115. package/dist/mjs/autocomplete/CompletionItem.js +2 -0
  116. package/dist/mjs/autocomplete/CompletionItem.js.map +1 -0
  117. package/dist/mjs/autocomplete/IfcExpressionAutocomplete.js +650 -0
  118. package/dist/mjs/autocomplete/IfcExpressionAutocomplete.js.map +1 -0
  119. package/dist/mjs/builtin/BuiltinRuntimeValueConverter.js +117 -0
  120. package/dist/mjs/builtin/BuiltinRuntimeValueConverter.js.map +1 -0
  121. package/dist/mjs/builtin/BuiltinVariableRegistry.js +399 -0
  122. package/dist/mjs/builtin/BuiltinVariableRegistry.js.map +1 -0
  123. package/dist/mjs/compiler/ExprCompiler.js +43 -40
  124. package/dist/mjs/compiler/ExprCompiler.js.map +1 -1
  125. package/dist/mjs/compiler/ExprManager.js.map +1 -1
  126. package/dist/mjs/compiler/IfcExpressionValidationListener.js +85 -22
  127. package/dist/mjs/compiler/IfcExpressionValidationListener.js.map +1 -1
  128. package/dist/mjs/compiler/TypeManager.js.map +1 -1
  129. package/dist/mjs/context/IfcExpressionContext.js.map +1 -1
  130. package/dist/mjs/context/NopContext.js +3 -0
  131. package/dist/mjs/context/NopContext.js.map +1 -1
  132. package/dist/mjs/documentation/Documentation.js +7 -0
  133. package/dist/mjs/documentation/Documentation.js.map +1 -0
  134. package/dist/mjs/error/ExpressionTypeError.js.map +1 -1
  135. package/dist/mjs/error/IfcExpressionBuiltinConfigException.js +6 -0
  136. package/dist/mjs/error/IfcExpressionBuiltinConfigException.js.map +1 -0
  137. package/dist/mjs/error/InvalidSyntaxException.js.map +1 -1
  138. package/dist/mjs/error/NoSuchFunctionException.js.map +1 -1
  139. package/dist/mjs/error/NoSuchMemberException.js +9 -0
  140. package/dist/mjs/error/NoSuchMemberException.js.map +1 -0
  141. package/dist/mjs/error/ValidationException.js.map +1 -1
  142. package/dist/mjs/error/WrongFunctionArgumentTypeException.js.map +1 -1
  143. package/dist/mjs/expression/ExprKind.js +3 -0
  144. package/dist/mjs/expression/ExprKind.js.map +1 -1
  145. package/dist/mjs/expression/function/Func.js +18 -14
  146. package/dist/mjs/expression/function/Func.js.map +1 -1
  147. package/dist/mjs/expression/function/FuncArg.js +11 -5
  148. package/dist/mjs/expression/function/FuncArg.js.map +1 -1
  149. package/dist/mjs/expression/function/IfcExpressionFunctions.js +198 -42
  150. package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -1
  151. package/dist/mjs/expression/function/impl/CHOOSE.js.map +1 -1
  152. package/dist/mjs/expression/function/impl/IF.js.map +1 -1
  153. package/dist/mjs/expression/function/impl/MAP.js.map +1 -1
  154. package/dist/mjs/expression/function/impl/ReplacePattern.js +20 -2
  155. package/dist/mjs/expression/function/impl/ReplacePattern.js.map +1 -1
  156. package/dist/mjs/expression/reference/BuiltinFunctionCallExpr.js +55 -0
  157. package/dist/mjs/expression/reference/BuiltinFunctionCallExpr.js.map +1 -0
  158. package/dist/mjs/expression/reference/BuiltinPropertyAccessExpr.js +30 -0
  159. package/dist/mjs/expression/reference/BuiltinPropertyAccessExpr.js.map +1 -0
  160. package/dist/mjs/expression/reference/BuiltinRootReferenceExpr.js +25 -0
  161. package/dist/mjs/expression/reference/BuiltinRootReferenceExpr.js.map +1 -0
  162. package/dist/mjs/gen/parser/IfcExpressionLexer.js +101 -104
  163. package/dist/mjs/gen/parser/IfcExpressionLexer.js.map +1 -1
  164. package/dist/mjs/gen/parser/IfcExpressionListener.js +5 -3
  165. package/dist/mjs/gen/parser/IfcExpressionListener.js.map +1 -1
  166. package/dist/mjs/gen/parser/IfcExpressionParser.js +700 -670
  167. package/dist/mjs/gen/parser/IfcExpressionParser.js.map +1 -1
  168. package/dist/mjs/gen/parser/IfcExpressionVisitor.js +2 -3
  169. package/dist/mjs/gen/parser/IfcExpressionVisitor.js.map +1 -1
  170. package/dist/mjs/index.js +1 -1
  171. package/dist/mjs/index.js.map +1 -1
  172. package/dist/mjs/type/ContextObjectType.js +41 -0
  173. package/dist/mjs/type/ContextObjectType.js.map +1 -0
  174. package/dist/mjs/type/Types.js +4 -6
  175. package/dist/mjs/type/Types.js.map +1 -1
  176. package/dist/mjs/value/ContextObjectValue.js +19 -0
  177. package/dist/mjs/value/ContextObjectValue.js.map +1 -0
  178. package/dist/mjs/value/ExpressionValue.js.map +1 -1
  179. package/dist/mjs/value/Value.js.map +1 -1
  180. package/dist/type/ContextObjectType.d.ts +17 -0
  181. package/dist/type/Types.d.ts +2 -6
  182. package/dist/value/ContextObjectValue.d.ts +11 -0
  183. package/dist/value/ExpressionValue.d.ts +2 -1
  184. package/dist/value/Value.d.ts +1 -1
  185. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["gen/parser/IfcExpressionParser.ts"],"names":[],"mappings":"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,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;IACvE,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,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,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,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACvE,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,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACvE,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,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,GAAG;IACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,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,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;IACxE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,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;IACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,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;IACvE,CAAC,EAAC,CAAC,EAAC,CAAC,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,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;IACvE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,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,EAAE,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;IACtE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,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,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC;IACtE,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,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,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,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,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,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;IACvE,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,EAAE,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;IACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,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,EAAE,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,EAAE,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;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,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,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,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,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;IACtE,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,EAAE,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,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,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;IACxE,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,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACxE,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,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,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,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;IACvE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;IACvE,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAA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","file":"gen/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 T__11 = 12;\n\tpublic static readonly T__12 = 13;\n\tpublic static readonly INT = 14;\n\tpublic static readonly FLOAT = 15;\n\tpublic static readonly BOOLEAN = 16;\n\tpublic static readonly LOGICAL_UNKNOWN = 17;\n\tpublic static readonly DOT = 18;\n\tpublic static readonly QUOTED_STRING = 19;\n\tpublic static readonly IDENTIFIER = 20;\n\tpublic static readonly WS = 21;\n\tpublic static readonly NEWLINE = 22;\n\tpublic static readonly BOOLEAN_BINARY_OP = 23;\n\tpublic static readonly CMP_OP = 24;\n\tpublic static readonly EOF = Token.EOF;\n\tpublic static readonly RULE_expr = 0;\n\tpublic static readonly RULE_singleExpr = 1;\n\tpublic static readonly RULE_methodCallChain = 2;\n\tpublic static readonly RULE_functionCall = 3;\n\tpublic static readonly RULE_exprList = 4;\n\tpublic static readonly RULE_arrayExpr = 5;\n\tpublic static readonly RULE_arrayElementList = 6;\n\tpublic static readonly RULE_literal = 7;\n\tpublic static readonly RULE_numLiteral = 8;\n\tpublic static readonly RULE_stringLiteral = 9;\n\tpublic static readonly RULE_booleanLiteral = 10;\n\tpublic static readonly RULE_logicalLiteral = 11;\n\tpublic static readonly RULE_variableRef = 12;\n\tpublic static readonly literalNames: (string | null)[] = [ null, \"'--'\", \n \"'('\", \"')'\", \n \"'-'\", \"'^'\", \n \"'*'\", \"'/'\", \n \"'+'\", \"'!'\", \n \"','\", \"'['\", \n \"']'\", \"'$'\", \n null, null, \n null, null, \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 null, null, \n \"INT\", \"FLOAT\", \n \"BOOLEAN\", \n \"LOGICAL_UNKNOWN\", \n \"DOT\", \"QUOTED_STRING\", \n \"IDENTIFIER\", \n \"WS\", \"NEWLINE\", \n \"BOOLEAN_BINARY_OP\", \n \"CMP_OP\" ];\n\t// tslint:disable:no-trailing-whitespace\n\tpublic static readonly ruleNames: string[] = [\n\t\t\"expr\", \"singleExpr\", \"methodCallChain\", \"functionCall\", \"exprList\", \"arrayExpr\", \n\t\t\"arrayElementList\", \"literal\", \"numLiteral\", \"stringLiteral\", \"booleanLiteral\", \n\t\t\"logicalLiteral\", \"variableRef\",\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.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 26;\n\t\t\tthis.singleExpr(0);\n\t\t\tthis.state = 27;\n\t\t\tthis.match(IfcExpressionParser.EOF);\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 singleExpr(): SingleExprContext;\n\tpublic singleExpr(_p: number): SingleExprContext;\n\t// @RuleVersion(0)\n\tpublic singleExpr(_p?: number): SingleExprContext {\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: SingleExprContext = new SingleExprContext(this, this._ctx, _parentState);\n\t\tlet _prevctx: SingleExprContext = localctx;\n\t\tlet _startState: number = 2;\n\t\tthis.enterRecursionRule(localctx, 2, IfcExpressionParser.RULE_singleExpr, _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 = 44;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 1:\n\t\t\t\t{\n\t\t\t\tlocalctx = new SEUnaryMultipleMinusContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\n\t\t\t\tthis.state = 30;\n\t\t\t\tthis.match(IfcExpressionParser.T__0);\n\t\t\t\tthis.state = 31;\n\t\t\t\t(localctx as SEUnaryMultipleMinusContext)._sub = this.singleExpr(14);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\t{\n\t\t\t\tlocalctx = new SEParenthesisContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 32;\n\t\t\t\tthis.match(IfcExpressionParser.T__1);\n\t\t\t\tthis.state = 33;\n\t\t\t\t(localctx as SEParenthesisContext)._sub = this.singleExpr(0);\n\t\t\t\tthis.state = 34;\n\t\t\t\tthis.match(IfcExpressionParser.T__2);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\t{\n\t\t\t\tlocalctx = new SEUnaryMinusContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 36;\n\t\t\t\tthis.match(IfcExpressionParser.T__3);\n\t\t\t\tthis.state = 37;\n\t\t\t\t(localctx as SEUnaryMinusContext)._sub = this.singleExpr(12);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 9:\n\t\t\t\t{\n\t\t\t\tlocalctx = new SENotContext(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.match(IfcExpressionParser.T__8);\n\t\t\t\tthis.state = 39;\n\t\t\t\t(localctx as SENotContext)._sub = this.singleExpr(6);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 13:\n\t\t\t\t{\n\t\t\t\tlocalctx = new SEVariableRefContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 40;\n\t\t\t\t(localctx as SEVariableRefContext)._sub = this.variableRef();\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 SEFunctionCallContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 41;\n\t\t\t\t(localctx as SEFunctionCallContext)._sub = this.functionCall();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 14:\n\t\t\tcase 15:\n\t\t\tcase 16:\n\t\t\tcase 17:\n\t\t\tcase 19:\n\t\t\t\t{\n\t\t\t\tlocalctx = new SELiteralContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 42;\n\t\t\t\t(localctx as SELiteralContext)._sub = this.literal();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 11:\n\t\t\t\t{\n\t\t\t\tlocalctx = new SEArrayExprContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 43;\n\t\t\t\t(localctx as SEArrayExprContext)._sub = this.arrayExpr();\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, 2, 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 = 63;\n\t\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t\tswitch ( this._interp.adaptivePredict(this._input, 1, this._ctx) ) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new SEPowerContext(this, new SingleExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\t(localctx as SEPowerContext)._left = _prevctx;\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_singleExpr);\n\t\t\t\t\t\tthis.state = 46;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 11))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 11)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 47;\n\t\t\t\t\t\t(localctx as SEPowerContext)._op = this.match(IfcExpressionParser.T__4);\n\t\t\t\t\t\tthis.state = 48;\n\t\t\t\t\t\t(localctx as SEPowerContext)._right = this.singleExpr(11);\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 SEMulDivContext(this, new SingleExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\t(localctx as SEMulDivContext)._left = _prevctx;\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_singleExpr);\n\t\t\t\t\t\tthis.state = 49;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 9))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 9)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 50;\n\t\t\t\t\t\t(localctx as SEMulDivContext)._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===6 || _la===7)) {\n\t\t\t\t\t\t (localctx as SEMulDivContext)._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 = 51;\n\t\t\t\t\t\t(localctx as SEMulDivContext)._right = this.singleExpr(10);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new SEAddSubContext(this, new SingleExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\t(localctx as SEAddSubContext)._left = _prevctx;\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_singleExpr);\n\t\t\t\t\t\tthis.state = 52;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 8))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 8)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 53;\n\t\t\t\t\t\t(localctx as SEAddSubContext)._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===4 || _la===8)) {\n\t\t\t\t\t\t (localctx as SEAddSubContext)._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 = 54;\n\t\t\t\t\t\t(localctx as SEAddSubContext)._right = this.singleExpr(9);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new SEComparisonContext(this, new SingleExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\t(localctx as SEComparisonContext)._left = _prevctx;\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_singleExpr);\n\t\t\t\t\t\tthis.state = 55;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 7))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 7)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 56;\n\t\t\t\t\t\tthis.match(IfcExpressionParser.CMP_OP);\n\t\t\t\t\t\tthis.state = 57;\n\t\t\t\t\t\t(localctx as SEComparisonContext)._right = this.singleExpr(8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 5:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new SEBooleanBinaryOpContext(this, new SingleExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\t(localctx as SEBooleanBinaryOpContext)._left = _prevctx;\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_singleExpr);\n\t\t\t\t\t\tthis.state = 58;\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 = 59;\n\t\t\t\t\t\t(localctx as SEBooleanBinaryOpContext)._op = this.match(IfcExpressionParser.BOOLEAN_BINARY_OP);\n\t\t\t\t\t\tthis.state = 60;\n\t\t\t\t\t\t(localctx as SEBooleanBinaryOpContext)._right = this.singleExpr(6);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 6:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new SEMethodCallContext(this, new SingleExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\t(localctx as SEMethodCallContext)._target = _prevctx;\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_singleExpr);\n\t\t\t\t\t\tthis.state = 61;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 10))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 10)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 62;\n\t\t\t\t\t\t(localctx as SEMethodCallContext)._call = this.methodCallChain();\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 = 67;\n\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t_alt = this._interp.adaptivePredict(this._input, 2, 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 methodCallChain(): MethodCallChainContext {\n\t\tlet localctx: MethodCallChainContext = new MethodCallChainContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 4, IfcExpressionParser.RULE_methodCallChain);\n\t\ttry {\n\t\t\tthis.state = 74;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 3, this._ctx) ) {\n\t\t\tcase 1:\n\t\t\t\tlocalctx = new MethodCallChainInnerContext(this, localctx);\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 68;\n\t\t\t\tthis.match(IfcExpressionParser.DOT);\n\t\t\t\tthis.state = 69;\n\t\t\t\t(localctx as MethodCallChainInnerContext)._target = this.functionCall();\n\t\t\t\tthis.state = 70;\n\t\t\t\t(localctx as MethodCallChainInnerContext)._call = this.methodCallChain();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tlocalctx = new MethodCallChainEndContext(this, localctx);\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 72;\n\t\t\t\tthis.match(IfcExpressionParser.DOT);\n\t\t\t\tthis.state = 73;\n\t\t\t\t(localctx as MethodCallChainEndContext)._call = this.functionCall();\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 functionCall(): FunctionCallContext {\n\t\tlet localctx: FunctionCallContext = new FunctionCallContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 6, IfcExpressionParser.RULE_functionCall);\n\t\tlet _la: number;\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 76;\n\t\t\tthis.match(IfcExpressionParser.IDENTIFIER);\n\t\t\tthis.state = 77;\n\t\t\tthis.match(IfcExpressionParser.T__1);\n\t\t\tthis.state = 79;\n\t\t\tthis._errHandler.sync(this);\n\t\t\t_la = this._input.LA(1);\n\t\t\tif ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1829398) !== 0)) {\n\t\t\t\t{\n\t\t\t\tthis.state = 78;\n\t\t\t\tlocalctx._sub = this.exprList();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.state = 81;\n\t\t\tthis.match(IfcExpressionParser.T__2);\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, 8, IfcExpressionParser.RULE_exprList);\n\t\ttry {\n\t\t\tthis.state = 88;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 5, 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 = 83;\n\t\t\t\tthis.singleExpr(0);\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 = 84;\n\t\t\t\tthis.singleExpr(0);\n\t\t\t\tthis.state = 85;\n\t\t\t\tthis.match(IfcExpressionParser.T__9);\n\t\t\t\tthis.state = 86;\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 arrayExpr(): ArrayExprContext {\n\t\tlet localctx: ArrayExprContext = new ArrayExprContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 10, IfcExpressionParser.RULE_arrayExpr);\n\t\tlet _la: number;\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 90;\n\t\t\tthis.match(IfcExpressionParser.T__10);\n\t\t\tthis.state = 92;\n\t\t\tthis._errHandler.sync(this);\n\t\t\t_la = this._input.LA(1);\n\t\t\tif ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1829398) !== 0)) {\n\t\t\t\t{\n\t\t\t\tthis.state = 91;\n\t\t\t\tlocalctx._sub = this.arrayElementList();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.state = 94;\n\t\t\tthis.match(IfcExpressionParser.T__11);\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, 12, IfcExpressionParser.RULE_arrayElementList);\n\t\ttry {\n\t\t\tthis.state = 101;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 7, 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 = 96;\n\t\t\t\tthis.singleExpr(0);\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 = 97;\n\t\t\t\tthis.singleExpr(0);\n\t\t\t\tthis.state = 98;\n\t\t\t\tthis.match(IfcExpressionParser.T__9);\n\t\t\t\tthis.state = 99;\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\t// @RuleVersion(0)\n\tpublic literal(): LiteralContext {\n\t\tlet localctx: LiteralContext = new LiteralContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 14, IfcExpressionParser.RULE_literal);\n\t\ttry {\n\t\t\tthis.state = 107;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 14:\n\t\t\tcase 15:\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 103;\n\t\t\t\tthis.numLiteral();\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 = 104;\n\t\t\t\tthis.stringLiteral();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 16:\n\t\t\t\tthis.enterOuterAlt(localctx, 3);\n\t\t\t\t{\n\t\t\t\tthis.state = 105;\n\t\t\t\tthis.booleanLiteral();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tthis.enterOuterAlt(localctx, 4);\n\t\t\t\t{\n\t\t\t\tthis.state = 106;\n\t\t\t\tthis.logicalLiteral();\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 numLiteral(): NumLiteralContext {\n\t\tlet localctx: NumLiteralContext = new NumLiteralContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 16, 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 = 109;\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 stringLiteral(): StringLiteralContext {\n\t\tlet localctx: StringLiteralContext = new StringLiteralContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 18, IfcExpressionParser.RULE_stringLiteral);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 111;\n\t\t\tthis.match(IfcExpressionParser.QUOTED_STRING);\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 booleanLiteral(): BooleanLiteralContext {\n\t\tlet localctx: BooleanLiteralContext = new BooleanLiteralContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 20, IfcExpressionParser.RULE_booleanLiteral);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 113;\n\t\t\tthis.match(IfcExpressionParser.BOOLEAN);\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 logicalLiteral(): LogicalLiteralContext {\n\t\tlet localctx: LogicalLiteralContext = new LogicalLiteralContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 22, IfcExpressionParser.RULE_logicalLiteral);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 115;\n\t\t\tthis.match(IfcExpressionParser.LOGICAL_UNKNOWN);\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 variableRef(): VariableRefContext {\n\t\tlet localctx: VariableRefContext = new VariableRefContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 24, IfcExpressionParser.RULE_variableRef);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 117;\n\t\t\tthis.match(IfcExpressionParser.T__12);\n\t\t\tthis.state = 118;\n\t\t\tthis.match(IfcExpressionParser.IDENTIFIER);\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.singleExpr_sempred(localctx as SingleExprContext, predIndex);\n\t\t}\n\t\treturn true;\n\t}\n\tprivate singleExpr_sempred(localctx: SingleExprContext, predIndex: number): boolean {\n\t\tswitch (predIndex) {\n\t\tcase 0:\n\t\t\treturn this.precpred(this._ctx, 11);\n\t\tcase 1:\n\t\t\treturn this.precpred(this._ctx, 9);\n\t\tcase 2:\n\t\t\treturn this.precpred(this._ctx, 8);\n\t\tcase 3:\n\t\t\treturn this.precpred(this._ctx, 7);\n\t\tcase 4:\n\t\t\treturn this.precpred(this._ctx, 5);\n\t\tcase 5:\n\t\t\treturn this.precpred(this._ctx, 10);\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic static readonly _serializedATN: number[] = [4,1,24,121,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,2,12,7,12,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n\t1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,45,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n\t1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,64,8,1,10,1,12,1,67,9,1,1,2,1,2,\n\t1,2,1,2,1,2,1,2,3,2,75,8,2,1,3,1,3,1,3,3,3,80,8,3,1,3,1,3,1,4,1,4,1,4,1,\n\t4,1,4,3,4,89,8,4,1,5,1,5,3,5,93,8,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,3,6,102,\n\t8,6,1,7,1,7,1,7,1,7,3,7,108,8,7,1,8,1,8,1,9,1,9,1,10,1,10,1,11,1,11,1,12,\n\t1,12,1,12,1,12,0,1,2,13,0,2,4,6,8,10,12,14,16,18,20,22,24,0,3,1,0,6,7,2,\n\t0,4,4,8,8,1,0,14,15,128,0,26,1,0,0,0,2,44,1,0,0,0,4,74,1,0,0,0,6,76,1,0,\n\t0,0,8,88,1,0,0,0,10,90,1,0,0,0,12,101,1,0,0,0,14,107,1,0,0,0,16,109,1,0,\n\t0,0,18,111,1,0,0,0,20,113,1,0,0,0,22,115,1,0,0,0,24,117,1,0,0,0,26,27,3,\n\t2,1,0,27,28,5,0,0,1,28,1,1,0,0,0,29,30,6,1,-1,0,30,31,5,1,0,0,31,45,3,2,\n\t1,14,32,33,5,2,0,0,33,34,3,2,1,0,34,35,5,3,0,0,35,45,1,0,0,0,36,37,5,4,\n\t0,0,37,45,3,2,1,12,38,39,5,9,0,0,39,45,3,2,1,6,40,45,3,24,12,0,41,45,3,\n\t6,3,0,42,45,3,14,7,0,43,45,3,10,5,0,44,29,1,0,0,0,44,32,1,0,0,0,44,36,1,\n\t0,0,0,44,38,1,0,0,0,44,40,1,0,0,0,44,41,1,0,0,0,44,42,1,0,0,0,44,43,1,0,\n\t0,0,45,65,1,0,0,0,46,47,10,11,0,0,47,48,5,5,0,0,48,64,3,2,1,11,49,50,10,\n\t9,0,0,50,51,7,0,0,0,51,64,3,2,1,10,52,53,10,8,0,0,53,54,7,1,0,0,54,64,3,\n\t2,1,9,55,56,10,7,0,0,56,57,5,24,0,0,57,64,3,2,1,8,58,59,10,5,0,0,59,60,\n\t5,23,0,0,60,64,3,2,1,6,61,62,10,10,0,0,62,64,3,4,2,0,63,46,1,0,0,0,63,49,\n\t1,0,0,0,63,52,1,0,0,0,63,55,1,0,0,0,63,58,1,0,0,0,63,61,1,0,0,0,64,67,1,\n\t0,0,0,65,63,1,0,0,0,65,66,1,0,0,0,66,3,1,0,0,0,67,65,1,0,0,0,68,69,5,18,\n\t0,0,69,70,3,6,3,0,70,71,3,4,2,0,71,75,1,0,0,0,72,73,5,18,0,0,73,75,3,6,\n\t3,0,74,68,1,0,0,0,74,72,1,0,0,0,75,5,1,0,0,0,76,77,5,20,0,0,77,79,5,2,0,\n\t0,78,80,3,8,4,0,79,78,1,0,0,0,79,80,1,0,0,0,80,81,1,0,0,0,81,82,5,3,0,0,\n\t82,7,1,0,0,0,83,89,3,2,1,0,84,85,3,2,1,0,85,86,5,10,0,0,86,87,3,8,4,0,87,\n\t89,1,0,0,0,88,83,1,0,0,0,88,84,1,0,0,0,89,9,1,0,0,0,90,92,5,11,0,0,91,93,\n\t3,12,6,0,92,91,1,0,0,0,92,93,1,0,0,0,93,94,1,0,0,0,94,95,5,12,0,0,95,11,\n\t1,0,0,0,96,102,3,2,1,0,97,98,3,2,1,0,98,99,5,10,0,0,99,100,3,12,6,0,100,\n\t102,1,0,0,0,101,96,1,0,0,0,101,97,1,0,0,0,102,13,1,0,0,0,103,108,3,16,8,\n\t0,104,108,3,18,9,0,105,108,3,20,10,0,106,108,3,22,11,0,107,103,1,0,0,0,\n\t107,104,1,0,0,0,107,105,1,0,0,0,107,106,1,0,0,0,108,15,1,0,0,0,109,110,\n\t7,2,0,0,110,17,1,0,0,0,111,112,5,19,0,0,112,19,1,0,0,0,113,114,5,16,0,0,\n\t114,21,1,0,0,0,115,116,5,17,0,0,116,23,1,0,0,0,117,118,5,13,0,0,118,119,\n\t5,20,0,0,119,25,1,0,0,0,9,44,63,65,74,79,88,92,101,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 singleExpr(): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, 0) as SingleExprContext;\n\t}\n\tpublic EOF(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.EOF, 0);\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 SingleExprContext 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_singleExpr;\n\t}\n\tpublic copyFrom(ctx: SingleExprContext): void {\n\t\tsuper.copyFrom(ctx);\n\t}\n}\nexport class SEComparisonContext extends SingleExprContext {\n\tpublic _left!: SingleExprContext;\n\tpublic _right!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic CMP_OP(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.CMP_OP, 0);\n\t}\n\tpublic singleExpr_list(): SingleExprContext[] {\n\t\treturn this.getTypedRuleContexts(SingleExprContext) as SingleExprContext[];\n\t}\n\tpublic singleExpr(i: number): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, i) as SingleExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEComparison) {\n\t \t\tlistener.enterSEComparison(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEComparison) {\n\t \t\tlistener.exitSEComparison(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEComparison) {\n\t\t\treturn visitor.visitSEComparison(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SELiteralContext extends SingleExprContext {\n\tpublic _sub!: LiteralContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic literal(): LiteralContext {\n\t\treturn this.getTypedRuleContext(LiteralContext, 0) as LiteralContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSELiteral) {\n\t \t\tlistener.enterSELiteral(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSELiteral) {\n\t \t\tlistener.exitSELiteral(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSELiteral) {\n\t\t\treturn visitor.visitSELiteral(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEParenthesisContext extends SingleExprContext {\n\tpublic _sub!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr(): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, 0) as SingleExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEParenthesis) {\n\t \t\tlistener.enterSEParenthesis(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEParenthesis) {\n\t \t\tlistener.exitSEParenthesis(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEParenthesis) {\n\t\t\treturn visitor.visitSEParenthesis(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEMulDivContext extends SingleExprContext {\n\tpublic _left!: SingleExprContext;\n\tpublic _op!: Token;\n\tpublic _right!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr_list(): SingleExprContext[] {\n\t\treturn this.getTypedRuleContexts(SingleExprContext) as SingleExprContext[];\n\t}\n\tpublic singleExpr(i: number): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, i) as SingleExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEMulDiv) {\n\t \t\tlistener.enterSEMulDiv(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEMulDiv) {\n\t \t\tlistener.exitSEMulDiv(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEMulDiv) {\n\t\t\treturn visitor.visitSEMulDiv(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEPowerContext extends SingleExprContext {\n\tpublic _left!: SingleExprContext;\n\tpublic _op!: Token;\n\tpublic _right!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr_list(): SingleExprContext[] {\n\t\treturn this.getTypedRuleContexts(SingleExprContext) as SingleExprContext[];\n\t}\n\tpublic singleExpr(i: number): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, i) as SingleExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEPower) {\n\t \t\tlistener.enterSEPower(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEPower) {\n\t \t\tlistener.exitSEPower(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEPower) {\n\t\t\treturn visitor.visitSEPower(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEBooleanBinaryOpContext extends SingleExprContext {\n\tpublic _left!: SingleExprContext;\n\tpublic _op!: Token;\n\tpublic _right!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr_list(): SingleExprContext[] {\n\t\treturn this.getTypedRuleContexts(SingleExprContext) as SingleExprContext[];\n\t}\n\tpublic singleExpr(i: number): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, i) as SingleExprContext;\n\t}\n\tpublic BOOLEAN_BINARY_OP(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.BOOLEAN_BINARY_OP, 0);\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEBooleanBinaryOp) {\n\t \t\tlistener.enterSEBooleanBinaryOp(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEBooleanBinaryOp) {\n\t \t\tlistener.exitSEBooleanBinaryOp(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEBooleanBinaryOp) {\n\t\t\treturn visitor.visitSEBooleanBinaryOp(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEFunctionCallContext extends SingleExprContext {\n\tpublic _sub!: FunctionCallContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\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.enterSEFunctionCall) {\n\t \t\tlistener.enterSEFunctionCall(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEFunctionCall) {\n\t \t\tlistener.exitSEFunctionCall(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEFunctionCall) {\n\t\t\treturn visitor.visitSEFunctionCall(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEArrayExprContext extends SingleExprContext {\n\tpublic _sub!: ArrayExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic arrayExpr(): ArrayExprContext {\n\t\treturn this.getTypedRuleContext(ArrayExprContext, 0) as ArrayExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEArrayExpr) {\n\t \t\tlistener.enterSEArrayExpr(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEArrayExpr) {\n\t \t\tlistener.exitSEArrayExpr(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEArrayExpr) {\n\t\t\treturn visitor.visitSEArrayExpr(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SENotContext extends SingleExprContext {\n\tpublic _sub!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr(): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, 0) as SingleExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSENot) {\n\t \t\tlistener.enterSENot(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSENot) {\n\t \t\tlistener.exitSENot(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSENot) {\n\t\t\treturn visitor.visitSENot(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEVariableRefContext extends SingleExprContext {\n\tpublic _sub!: VariableRefContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic variableRef(): VariableRefContext {\n\t\treturn this.getTypedRuleContext(VariableRefContext, 0) as VariableRefContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEVariableRef) {\n\t \t\tlistener.enterSEVariableRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEVariableRef) {\n\t \t\tlistener.exitSEVariableRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEVariableRef) {\n\t\t\treturn visitor.visitSEVariableRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEUnaryMultipleMinusContext extends SingleExprContext {\n\tpublic _sub!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr(): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, 0) as SingleExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEUnaryMultipleMinus) {\n\t \t\tlistener.enterSEUnaryMultipleMinus(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEUnaryMultipleMinus) {\n\t \t\tlistener.exitSEUnaryMultipleMinus(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEUnaryMultipleMinus) {\n\t\t\treturn visitor.visitSEUnaryMultipleMinus(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEUnaryMinusContext extends SingleExprContext {\n\tpublic _sub!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr(): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, 0) as SingleExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEUnaryMinus) {\n\t \t\tlistener.enterSEUnaryMinus(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEUnaryMinus) {\n\t \t\tlistener.exitSEUnaryMinus(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEUnaryMinus) {\n\t\t\treturn visitor.visitSEUnaryMinus(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEAddSubContext extends SingleExprContext {\n\tpublic _left!: SingleExprContext;\n\tpublic _op!: Token;\n\tpublic _right!: SingleExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr_list(): SingleExprContext[] {\n\t\treturn this.getTypedRuleContexts(SingleExprContext) as SingleExprContext[];\n\t}\n\tpublic singleExpr(i: number): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, i) as SingleExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEAddSub) {\n\t \t\tlistener.enterSEAddSub(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEAddSub) {\n\t \t\tlistener.exitSEAddSub(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEAddSub) {\n\t\t\treturn visitor.visitSEAddSub(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class SEMethodCallContext extends SingleExprContext {\n\tpublic _target!: SingleExprContext;\n\tpublic _call!: MethodCallChainContext;\n\tconstructor(parser: IfcExpressionParser, ctx: SingleExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic singleExpr(): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, 0) as SingleExprContext;\n\t}\n\tpublic methodCallChain(): MethodCallChainContext {\n\t\treturn this.getTypedRuleContext(MethodCallChainContext, 0) as MethodCallChainContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterSEMethodCall) {\n\t \t\tlistener.enterSEMethodCall(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitSEMethodCall) {\n\t \t\tlistener.exitSEMethodCall(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitSEMethodCall) {\n\t\t\treturn visitor.visitSEMethodCall(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class MethodCallChainContext 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_methodCallChain;\n\t}\n\tpublic copyFrom(ctx: MethodCallChainContext): void {\n\t\tsuper.copyFrom(ctx);\n\t}\n}\nexport class MethodCallChainInnerContext extends MethodCallChainContext {\n\tpublic _target!: FunctionCallContext;\n\tpublic _call!: MethodCallChainContext;\n\tconstructor(parser: IfcExpressionParser, ctx: MethodCallChainContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic DOT(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.DOT, 0);\n\t}\n\tpublic functionCall(): FunctionCallContext {\n\t\treturn this.getTypedRuleContext(FunctionCallContext, 0) as FunctionCallContext;\n\t}\n\tpublic methodCallChain(): MethodCallChainContext {\n\t\treturn this.getTypedRuleContext(MethodCallChainContext, 0) as MethodCallChainContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterMethodCallChainInner) {\n\t \t\tlistener.enterMethodCallChainInner(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitMethodCallChainInner) {\n\t \t\tlistener.exitMethodCallChainInner(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitMethodCallChainInner) {\n\t\t\treturn visitor.visitMethodCallChainInner(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class MethodCallChainEndContext extends MethodCallChainContext {\n\tpublic _call!: FunctionCallContext;\n\tconstructor(parser: IfcExpressionParser, ctx: MethodCallChainContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic DOT(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.DOT, 0);\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.enterMethodCallChainEnd) {\n\t \t\tlistener.enterMethodCallChainEnd(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitMethodCallChainEnd) {\n\t \t\tlistener.exitMethodCallChainEnd(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitMethodCallChainEnd) {\n\t\t\treturn visitor.visitMethodCallChainEnd(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 _sub!: ExprListContext;\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic IDENTIFIER(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.IDENTIFIER, 0);\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_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 singleExpr(): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, 0) as SingleExprContext;\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 ArrayExprContext extends ParserRuleContext {\n\tpublic _sub!: ArrayElementListContext;\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_arrayExpr;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterArrayExpr) {\n\t \t\tlistener.enterArrayExpr(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitArrayExpr) {\n\t \t\tlistener.exitArrayExpr(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitArrayExpr) {\n\t\t\treturn visitor.visitArrayExpr(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 singleExpr(): SingleExprContext {\n\t\treturn this.getTypedRuleContext(SingleExprContext, 0) as SingleExprContext;\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\n\nexport class LiteralContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic numLiteral(): NumLiteralContext {\n\t\treturn this.getTypedRuleContext(NumLiteralContext, 0) as NumLiteralContext;\n\t}\n\tpublic stringLiteral(): StringLiteralContext {\n\t\treturn this.getTypedRuleContext(StringLiteralContext, 0) as StringLiteralContext;\n\t}\n\tpublic booleanLiteral(): BooleanLiteralContext {\n\t\treturn this.getTypedRuleContext(BooleanLiteralContext, 0) as BooleanLiteralContext;\n\t}\n\tpublic logicalLiteral(): LogicalLiteralContext {\n\t\treturn this.getTypedRuleContext(LogicalLiteralContext, 0) as LogicalLiteralContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_literal;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterLiteral) {\n\t \t\tlistener.enterLiteral(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitLiteral) {\n\t \t\tlistener.exitLiteral(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitLiteral) {\n\t\t\treturn visitor.visitLiteral(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 StringLiteralContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic QUOTED_STRING(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.QUOTED_STRING, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_stringLiteral;\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}\n\n\nexport class BooleanLiteralContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic BOOLEAN(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.BOOLEAN, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_booleanLiteral;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterBooleanLiteral) {\n\t \t\tlistener.enterBooleanLiteral(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitBooleanLiteral) {\n\t \t\tlistener.exitBooleanLiteral(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitBooleanLiteral) {\n\t\t\treturn visitor.visitBooleanLiteral(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class LogicalLiteralContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic LOGICAL_UNKNOWN(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.LOGICAL_UNKNOWN, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_logicalLiteral;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterLogicalLiteral) {\n\t \t\tlistener.enterLogicalLiteral(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitLogicalLiteral) {\n\t \t\tlistener.exitLogicalLiteral(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitLogicalLiteral) {\n\t\t\treturn visitor.visitLogicalLiteral(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class VariableRefContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\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_variableRef;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterVariableRef) {\n\t \t\tlistener.enterVariableRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitVariableRef) {\n\t \t\tlistener.exitVariableRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitVariableRef) {\n\t\t\treturn visitor.visitVariableRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["gen/parser/IfcExpressionParser.ts"],"names":[],"mappings":"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AC,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;IAChE,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,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;IACjE,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,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/D,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,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAChE,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,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/D,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,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,CAAC;IAChE,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,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/D,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,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,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/D,CAAC,EAAC,CAAC,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,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;IAChE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,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,CAAC,EAAC,CAAC,EAAC,EAAE;IACjE,EAAE,EAAC,GAAG,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,CAAC,EAAC,EAAE;IAC/D,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,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/D,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;IAChE,GAAG,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,CAAC;IACjE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,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;IAChE,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,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAChE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,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;IAChE,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;IAChE,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;IAC/D,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,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,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;IAC/D,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,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;IACjE,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,EAAE,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;IAChE,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,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;IAC/D,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;IAChE,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,CAAC,EAAC,CAAC;IAChE,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;IACjE,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,EAAC,CAAC,EAAC,CAAC;IAC/D,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,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACjE,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,EAAE,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;IAChE,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,CAAC,EAAC,CAAC,EAAC,CAAC;IAChE,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;IAChE,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,EAAE;IAC/D,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,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;IACjE,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;IAC/D,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;IACjE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG;IACjE,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IAC/D,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;IAClE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;IAC/D,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAA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","file":"gen/parser/IfcExpressionParser.js","sourcesContent":["\nimport * as antlr from \"antlr4ng\";\nimport { Token } from \"antlr4ng\";\n\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\n\nexport class IfcExpressionParser extends antlr.Parser {\n public static readonly T__0 = 1;\n public static readonly T__1 = 2;\n public static readonly T__2 = 3;\n public static readonly T__3 = 4;\n public static readonly T__4 = 5;\n public static readonly T__5 = 6;\n public static readonly T__6 = 7;\n public static readonly T__7 = 8;\n public static readonly T__8 = 9;\n public static readonly T__9 = 10;\n public static readonly T__10 = 11;\n public static readonly T__11 = 12;\n public static readonly T__12 = 13;\n public static readonly INT = 14;\n public static readonly FLOAT = 15;\n public static readonly BOOLEAN = 16;\n public static readonly LOGICAL_UNKNOWN = 17;\n public static readonly DOT = 18;\n public static readonly QUOTED_STRING = 19;\n public static readonly IDENTIFIER = 20;\n public static readonly WS = 21;\n public static readonly NEWLINE = 22;\n public static readonly BOOLEAN_BINARY_OP = 23;\n public static readonly CMP_OP = 24;\n public static readonly RULE_expr = 0;\n public static readonly RULE_singleExpr = 1;\n public static readonly RULE_methodCallChain = 2;\n public static readonly RULE_methodAccessor = 3;\n public static readonly RULE_functionCall = 4;\n public static readonly RULE_exprList = 5;\n public static readonly RULE_arrayExpr = 6;\n public static readonly RULE_arrayElementList = 7;\n public static readonly RULE_literal = 8;\n public static readonly RULE_numLiteral = 9;\n public static readonly RULE_stringLiteral = 10;\n public static readonly RULE_booleanLiteral = 11;\n public static readonly RULE_logicalLiteral = 12;\n public static readonly RULE_variableRef = 13;\n\n public static readonly literalNames = [\n null, \"'--'\", \"'('\", \"')'\", \"'-'\", \"'^'\", \"'*'\", \"'/'\", \"'+'\", \"'!'\", \n \"','\", \"'['\", \"']'\", \"'$'\", null, null, null, null, \"'.'\"\n ];\n\n public static readonly symbolicNames = [\n null, null, null, null, null, null, null, null, null, null, null, \n null, null, null, \"INT\", \"FLOAT\", \"BOOLEAN\", \"LOGICAL_UNKNOWN\", \n \"DOT\", \"QUOTED_STRING\", \"IDENTIFIER\", \"WS\", \"NEWLINE\", \"BOOLEAN_BINARY_OP\", \n \"CMP_OP\"\n ];\n public static readonly ruleNames = [\n \"expr\", \"singleExpr\", \"methodCallChain\", \"methodAccessor\", \"functionCall\", \n \"exprList\", \"arrayExpr\", \"arrayElementList\", \"literal\", \"numLiteral\", \n \"stringLiteral\", \"booleanLiteral\", \"logicalLiteral\", \"variableRef\",\n ];\n\n public get grammarFileName(): string { return \"IfcExpression.g4\"; }\n public get literalNames(): (string | null)[] { return IfcExpressionParser.literalNames; }\n public get symbolicNames(): (string | null)[] { return IfcExpressionParser.symbolicNames; }\n public get ruleNames(): string[] { return IfcExpressionParser.ruleNames; }\n public get serializedATN(): number[] { return IfcExpressionParser._serializedATN; }\n\n protected createFailedPredicateException(predicate?: string, message?: string): antlr.FailedPredicateException {\n return new antlr.FailedPredicateException(this, predicate, message);\n }\n\n public constructor(input: antlr.TokenStream) {\n super(input);\n this.interpreter = new antlr.ParserATNSimulator(this, IfcExpressionParser._ATN, IfcExpressionParser.decisionsToDFA, new antlr.PredictionContextCache());\n }\n public expr(): ExprContext {\n let localContext = new ExprContext(this.context, this.state);\n this.enterRule(localContext, 0, IfcExpressionParser.RULE_expr);\n try {\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 28;\n this.singleExpr(0);\n this.state = 29;\n this.match(IfcExpressionParser.EOF);\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n\n public singleExpr(): SingleExprContext;\n public singleExpr(_p: number): SingleExprContext;\n public singleExpr(_p?: number): SingleExprContext {\n if (_p === undefined) {\n _p = 0;\n }\n\n let parentContext = this.context;\n let parentState = this.state;\n let localContext = new SingleExprContext(this.context, parentState);\n let previousContext = localContext;\n let _startState = 2;\n this.enterRecursionRule(localContext, 2, IfcExpressionParser.RULE_singleExpr, _p);\n let _la: number;\n try {\n let alternative: number;\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 46;\n this.errorHandler.sync(this);\n switch (this.tokenStream.LA(1)) {\n case IfcExpressionParser.T__0:\n {\n localContext = new SEUnaryMultipleMinusContext(localContext);\n this.context = localContext;\n previousContext = localContext;\n\n this.state = 32;\n this.match(IfcExpressionParser.T__0);\n this.state = 33;\n (localContext as SEUnaryMultipleMinusContext)._sub = this.singleExpr(14);\n }\n break;\n case IfcExpressionParser.T__1:\n {\n localContext = new SEParenthesisContext(localContext);\n this.context = localContext;\n previousContext = localContext;\n this.state = 34;\n this.match(IfcExpressionParser.T__1);\n this.state = 35;\n (localContext as SEParenthesisContext)._sub = this.singleExpr(0);\n this.state = 36;\n this.match(IfcExpressionParser.T__2);\n }\n break;\n case IfcExpressionParser.T__3:\n {\n localContext = new SEUnaryMinusContext(localContext);\n this.context = localContext;\n previousContext = localContext;\n this.state = 38;\n this.match(IfcExpressionParser.T__3);\n this.state = 39;\n (localContext as SEUnaryMinusContext)._sub = this.singleExpr(12);\n }\n break;\n case IfcExpressionParser.T__8:\n {\n localContext = new SENotContext(localContext);\n this.context = localContext;\n previousContext = localContext;\n this.state = 40;\n this.match(IfcExpressionParser.T__8);\n this.state = 41;\n (localContext as SENotContext)._sub = this.singleExpr(6);\n }\n break;\n case IfcExpressionParser.T__12:\n {\n localContext = new SEVariableRefContext(localContext);\n this.context = localContext;\n previousContext = localContext;\n this.state = 42;\n (localContext as SEVariableRefContext)._sub = this.variableRef();\n }\n break;\n case IfcExpressionParser.IDENTIFIER:\n {\n localContext = new SEFunctionCallContext(localContext);\n this.context = localContext;\n previousContext = localContext;\n this.state = 43;\n (localContext as SEFunctionCallContext)._sub = this.functionCall();\n }\n break;\n case IfcExpressionParser.INT:\n case IfcExpressionParser.FLOAT:\n case IfcExpressionParser.BOOLEAN:\n case IfcExpressionParser.LOGICAL_UNKNOWN:\n case IfcExpressionParser.QUOTED_STRING:\n {\n localContext = new SELiteralContext(localContext);\n this.context = localContext;\n previousContext = localContext;\n this.state = 44;\n (localContext as SELiteralContext)._sub = this.literal();\n }\n break;\n case IfcExpressionParser.T__10:\n {\n localContext = new SEArrayExprContext(localContext);\n this.context = localContext;\n previousContext = localContext;\n this.state = 45;\n (localContext as SEArrayExprContext)._sub = this.arrayExpr();\n }\n break;\n default:\n throw new antlr.NoViableAltException(this);\n }\n this.context!.stop = this.tokenStream.LT(-1);\n this.state = 67;\n this.errorHandler.sync(this);\n alternative = this.interpreter.adaptivePredict(this.tokenStream, 2, this.context);\n while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {\n if (alternative === 1) {\n if (this.parseListeners != null) {\n this.triggerExitRuleEvent();\n }\n previousContext = localContext;\n {\n this.state = 65;\n this.errorHandler.sync(this);\n switch (this.interpreter.adaptivePredict(this.tokenStream, 1, this.context) ) {\n case 1:\n {\n localContext = new SEPowerContext(new SingleExprContext(parentContext, parentState));\n (localContext as SEPowerContext)._left = previousContext;\n this.pushNewRecursionContext(localContext, _startState, IfcExpressionParser.RULE_singleExpr);\n this.state = 48;\n if (!(this.precpred(this.context, 11))) {\n throw this.createFailedPredicateException(\"this.precpred(this.context, 11)\");\n }\n this.state = 49;\n (localContext as SEPowerContext)._op = this.match(IfcExpressionParser.T__4);\n this.state = 50;\n (localContext as SEPowerContext)._right = this.singleExpr(11);\n }\n break;\n case 2:\n {\n localContext = new SEMulDivContext(new SingleExprContext(parentContext, parentState));\n (localContext as SEMulDivContext)._left = previousContext;\n this.pushNewRecursionContext(localContext, _startState, IfcExpressionParser.RULE_singleExpr);\n this.state = 51;\n if (!(this.precpred(this.context, 9))) {\n throw this.createFailedPredicateException(\"this.precpred(this.context, 9)\");\n }\n this.state = 52;\n (localContext as SEMulDivContext)._op = this.tokenStream.LT(1);\n _la = this.tokenStream.LA(1);\n if(!(_la === 6 || _la === 7)) {\n (localContext as SEMulDivContext)._op = this.errorHandler.recoverInline(this);\n }\n else {\n this.errorHandler.reportMatch(this);\n this.consume();\n }\n this.state = 53;\n (localContext as SEMulDivContext)._right = this.singleExpr(10);\n }\n break;\n case 3:\n {\n localContext = new SEAddSubContext(new SingleExprContext(parentContext, parentState));\n (localContext as SEAddSubContext)._left = previousContext;\n this.pushNewRecursionContext(localContext, _startState, IfcExpressionParser.RULE_singleExpr);\n this.state = 54;\n if (!(this.precpred(this.context, 8))) {\n throw this.createFailedPredicateException(\"this.precpred(this.context, 8)\");\n }\n this.state = 55;\n (localContext as SEAddSubContext)._op = this.tokenStream.LT(1);\n _la = this.tokenStream.LA(1);\n if(!(_la === 4 || _la === 8)) {\n (localContext as SEAddSubContext)._op = this.errorHandler.recoverInline(this);\n }\n else {\n this.errorHandler.reportMatch(this);\n this.consume();\n }\n this.state = 56;\n (localContext as SEAddSubContext)._right = this.singleExpr(9);\n }\n break;\n case 4:\n {\n localContext = new SEComparisonContext(new SingleExprContext(parentContext, parentState));\n (localContext as SEComparisonContext)._left = previousContext;\n this.pushNewRecursionContext(localContext, _startState, IfcExpressionParser.RULE_singleExpr);\n this.state = 57;\n if (!(this.precpred(this.context, 7))) {\n throw this.createFailedPredicateException(\"this.precpred(this.context, 7)\");\n }\n this.state = 58;\n this.match(IfcExpressionParser.CMP_OP);\n this.state = 59;\n (localContext as SEComparisonContext)._right = this.singleExpr(8);\n }\n break;\n case 5:\n {\n localContext = new SEBooleanBinaryOpContext(new SingleExprContext(parentContext, parentState));\n (localContext as SEBooleanBinaryOpContext)._left = previousContext;\n this.pushNewRecursionContext(localContext, _startState, IfcExpressionParser.RULE_singleExpr);\n this.state = 60;\n if (!(this.precpred(this.context, 5))) {\n throw this.createFailedPredicateException(\"this.precpred(this.context, 5)\");\n }\n this.state = 61;\n (localContext as SEBooleanBinaryOpContext)._op = this.match(IfcExpressionParser.BOOLEAN_BINARY_OP);\n this.state = 62;\n (localContext as SEBooleanBinaryOpContext)._right = this.singleExpr(6);\n }\n break;\n case 6:\n {\n localContext = new SEMethodCallContext(new SingleExprContext(parentContext, parentState));\n (localContext as SEMethodCallContext)._target = previousContext;\n this.pushNewRecursionContext(localContext, _startState, IfcExpressionParser.RULE_singleExpr);\n this.state = 63;\n if (!(this.precpred(this.context, 10))) {\n throw this.createFailedPredicateException(\"this.precpred(this.context, 10)\");\n }\n this.state = 64;\n (localContext as SEMethodCallContext)._call = this.methodCallChain();\n }\n break;\n }\n }\n }\n this.state = 69;\n this.errorHandler.sync(this);\n alternative = this.interpreter.adaptivePredict(this.tokenStream, 2, this.context);\n }\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.unrollRecursionContexts(parentContext);\n }\n return localContext;\n }\n public methodCallChain(): MethodCallChainContext {\n let localContext = new MethodCallChainContext(this.context, this.state);\n this.enterRule(localContext, 4, IfcExpressionParser.RULE_methodCallChain);\n try {\n this.state = 76;\n this.errorHandler.sync(this);\n switch (this.interpreter.adaptivePredict(this.tokenStream, 3, this.context) ) {\n case 1:\n localContext = new MethodCallChainInnerContext(localContext);\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 70;\n this.match(IfcExpressionParser.DOT);\n this.state = 71;\n (localContext as MethodCallChainInnerContext)._target = this.methodAccessor();\n this.state = 72;\n (localContext as MethodCallChainInnerContext)._call = this.methodCallChain();\n }\n break;\n case 2:\n localContext = new MethodCallChainEndContext(localContext);\n this.enterOuterAlt(localContext, 2);\n {\n this.state = 74;\n this.match(IfcExpressionParser.DOT);\n this.state = 75;\n (localContext as MethodCallChainEndContext)._call = this.methodAccessor();\n }\n break;\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public methodAccessor(): MethodAccessorContext {\n let localContext = new MethodAccessorContext(this.context, this.state);\n this.enterRule(localContext, 6, IfcExpressionParser.RULE_methodAccessor);\n try {\n this.state = 80;\n this.errorHandler.sync(this);\n switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context) ) {\n case 1:\n localContext = new MethodFunctionCallContext(localContext);\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 78;\n this.functionCall();\n }\n break;\n case 2:\n localContext = new MethodPropertyAccessContext(localContext);\n this.enterOuterAlt(localContext, 2);\n {\n this.state = 79;\n this.match(IfcExpressionParser.IDENTIFIER);\n }\n break;\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public functionCall(): FunctionCallContext {\n let localContext = new FunctionCallContext(this.context, this.state);\n this.enterRule(localContext, 8, IfcExpressionParser.RULE_functionCall);\n let _la: number;\n try {\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 82;\n this.match(IfcExpressionParser.IDENTIFIER);\n this.state = 83;\n this.match(IfcExpressionParser.T__1);\n this.state = 85;\n this.errorHandler.sync(this);\n _la = this.tokenStream.LA(1);\n if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1829398) !== 0)) {\n {\n this.state = 84;\n localContext._sub = this.exprList();\n }\n }\n\n this.state = 87;\n this.match(IfcExpressionParser.T__2);\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public exprList(): ExprListContext {\n let localContext = new ExprListContext(this.context, this.state);\n this.enterRule(localContext, 10, IfcExpressionParser.RULE_exprList);\n try {\n this.state = 94;\n this.errorHandler.sync(this);\n switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context) ) {\n case 1:\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 89;\n this.singleExpr(0);\n }\n break;\n case 2:\n this.enterOuterAlt(localContext, 2);\n {\n this.state = 90;\n this.singleExpr(0);\n this.state = 91;\n this.match(IfcExpressionParser.T__9);\n this.state = 92;\n this.exprList();\n }\n break;\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public arrayExpr(): ArrayExprContext {\n let localContext = new ArrayExprContext(this.context, this.state);\n this.enterRule(localContext, 12, IfcExpressionParser.RULE_arrayExpr);\n let _la: number;\n try {\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 96;\n this.match(IfcExpressionParser.T__10);\n this.state = 98;\n this.errorHandler.sync(this);\n _la = this.tokenStream.LA(1);\n if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1829398) !== 0)) {\n {\n this.state = 97;\n localContext._sub = this.arrayElementList();\n }\n }\n\n this.state = 100;\n this.match(IfcExpressionParser.T__11);\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public arrayElementList(): ArrayElementListContext {\n let localContext = new ArrayElementListContext(this.context, this.state);\n this.enterRule(localContext, 14, IfcExpressionParser.RULE_arrayElementList);\n try {\n this.state = 107;\n this.errorHandler.sync(this);\n switch (this.interpreter.adaptivePredict(this.tokenStream, 8, this.context) ) {\n case 1:\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 102;\n this.singleExpr(0);\n }\n break;\n case 2:\n this.enterOuterAlt(localContext, 2);\n {\n this.state = 103;\n this.singleExpr(0);\n this.state = 104;\n this.match(IfcExpressionParser.T__9);\n this.state = 105;\n this.arrayElementList();\n }\n break;\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public literal(): LiteralContext {\n let localContext = new LiteralContext(this.context, this.state);\n this.enterRule(localContext, 16, IfcExpressionParser.RULE_literal);\n try {\n this.state = 113;\n this.errorHandler.sync(this);\n switch (this.tokenStream.LA(1)) {\n case IfcExpressionParser.INT:\n case IfcExpressionParser.FLOAT:\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 109;\n this.numLiteral();\n }\n break;\n case IfcExpressionParser.QUOTED_STRING:\n this.enterOuterAlt(localContext, 2);\n {\n this.state = 110;\n this.stringLiteral();\n }\n break;\n case IfcExpressionParser.BOOLEAN:\n this.enterOuterAlt(localContext, 3);\n {\n this.state = 111;\n this.booleanLiteral();\n }\n break;\n case IfcExpressionParser.LOGICAL_UNKNOWN:\n this.enterOuterAlt(localContext, 4);\n {\n this.state = 112;\n this.logicalLiteral();\n }\n break;\n default:\n throw new antlr.NoViableAltException(this);\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public numLiteral(): NumLiteralContext {\n let localContext = new NumLiteralContext(this.context, this.state);\n this.enterRule(localContext, 18, IfcExpressionParser.RULE_numLiteral);\n let _la: number;\n try {\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 115;\n _la = this.tokenStream.LA(1);\n if(!(_la === 14 || _la === 15)) {\n this.errorHandler.recoverInline(this);\n }\n else {\n this.errorHandler.reportMatch(this);\n this.consume();\n }\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public stringLiteral(): StringLiteralContext {\n let localContext = new StringLiteralContext(this.context, this.state);\n this.enterRule(localContext, 20, IfcExpressionParser.RULE_stringLiteral);\n try {\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 117;\n this.match(IfcExpressionParser.QUOTED_STRING);\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public booleanLiteral(): BooleanLiteralContext {\n let localContext = new BooleanLiteralContext(this.context, this.state);\n this.enterRule(localContext, 22, IfcExpressionParser.RULE_booleanLiteral);\n try {\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 119;\n this.match(IfcExpressionParser.BOOLEAN);\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public logicalLiteral(): LogicalLiteralContext {\n let localContext = new LogicalLiteralContext(this.context, this.state);\n this.enterRule(localContext, 24, IfcExpressionParser.RULE_logicalLiteral);\n try {\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 121;\n this.match(IfcExpressionParser.LOGICAL_UNKNOWN);\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n public variableRef(): VariableRefContext {\n let localContext = new VariableRefContext(this.context, this.state);\n this.enterRule(localContext, 26, IfcExpressionParser.RULE_variableRef);\n try {\n this.enterOuterAlt(localContext, 1);\n {\n this.state = 123;\n this.match(IfcExpressionParser.T__12);\n this.state = 124;\n this.match(IfcExpressionParser.IDENTIFIER);\n }\n }\n catch (re) {\n if (re instanceof antlr.RecognitionException) {\n this.errorHandler.reportError(this, re);\n this.errorHandler.recover(this, re);\n } else {\n throw re;\n }\n }\n finally {\n this.exitRule();\n }\n return localContext;\n }\n\n public override sempred(localContext: antlr.ParserRuleContext | null, ruleIndex: number, predIndex: number): boolean {\n switch (ruleIndex) {\n case 1:\n return this.singleExpr_sempred(localContext as SingleExprContext, predIndex);\n }\n return true;\n }\n private singleExpr_sempred(localContext: SingleExprContext | null, predIndex: number): boolean {\n switch (predIndex) {\n case 0:\n return this.precpred(this.context, 11);\n case 1:\n return this.precpred(this.context, 9);\n case 2:\n return this.precpred(this.context, 8);\n case 3:\n return this.precpred(this.context, 7);\n case 4:\n return this.precpred(this.context, 5);\n case 5:\n return this.precpred(this.context, 10);\n }\n return true;\n }\n\n public static readonly _serializedATN: number[] = [\n 4,1,24,127,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,\n 6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,\n 1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n 1,1,1,1,3,1,47,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n 1,1,1,1,1,1,1,1,1,1,1,5,1,66,8,1,10,1,12,1,69,9,1,1,2,1,2,1,2,1,\n 2,1,2,1,2,3,2,77,8,2,1,3,1,3,3,3,81,8,3,1,4,1,4,1,4,3,4,86,8,4,1,\n 4,1,4,1,5,1,5,1,5,1,5,1,5,3,5,95,8,5,1,6,1,6,3,6,99,8,6,1,6,1,6,\n 1,7,1,7,1,7,1,7,1,7,3,7,108,8,7,1,8,1,8,1,8,1,8,3,8,114,8,8,1,9,\n 1,9,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,13,1,13,0,1,2,14,0,\n 2,4,6,8,10,12,14,16,18,20,22,24,26,0,3,1,0,6,7,2,0,4,4,8,8,1,0,14,\n 15,134,0,28,1,0,0,0,2,46,1,0,0,0,4,76,1,0,0,0,6,80,1,0,0,0,8,82,\n 1,0,0,0,10,94,1,0,0,0,12,96,1,0,0,0,14,107,1,0,0,0,16,113,1,0,0,\n 0,18,115,1,0,0,0,20,117,1,0,0,0,22,119,1,0,0,0,24,121,1,0,0,0,26,\n 123,1,0,0,0,28,29,3,2,1,0,29,30,5,0,0,1,30,1,1,0,0,0,31,32,6,1,-1,\n 0,32,33,5,1,0,0,33,47,3,2,1,14,34,35,5,2,0,0,35,36,3,2,1,0,36,37,\n 5,3,0,0,37,47,1,0,0,0,38,39,5,4,0,0,39,47,3,2,1,12,40,41,5,9,0,0,\n 41,47,3,2,1,6,42,47,3,26,13,0,43,47,3,8,4,0,44,47,3,16,8,0,45,47,\n 3,12,6,0,46,31,1,0,0,0,46,34,1,0,0,0,46,38,1,0,0,0,46,40,1,0,0,0,\n 46,42,1,0,0,0,46,43,1,0,0,0,46,44,1,0,0,0,46,45,1,0,0,0,47,67,1,\n 0,0,0,48,49,10,11,0,0,49,50,5,5,0,0,50,66,3,2,1,11,51,52,10,9,0,\n 0,52,53,7,0,0,0,53,66,3,2,1,10,54,55,10,8,0,0,55,56,7,1,0,0,56,66,\n 3,2,1,9,57,58,10,7,0,0,58,59,5,24,0,0,59,66,3,2,1,8,60,61,10,5,0,\n 0,61,62,5,23,0,0,62,66,3,2,1,6,63,64,10,10,0,0,64,66,3,4,2,0,65,\n 48,1,0,0,0,65,51,1,0,0,0,65,54,1,0,0,0,65,57,1,0,0,0,65,60,1,0,0,\n 0,65,63,1,0,0,0,66,69,1,0,0,0,67,65,1,0,0,0,67,68,1,0,0,0,68,3,1,\n 0,0,0,69,67,1,0,0,0,70,71,5,18,0,0,71,72,3,6,3,0,72,73,3,4,2,0,73,\n 77,1,0,0,0,74,75,5,18,0,0,75,77,3,6,3,0,76,70,1,0,0,0,76,74,1,0,\n 0,0,77,5,1,0,0,0,78,81,3,8,4,0,79,81,5,20,0,0,80,78,1,0,0,0,80,79,\n 1,0,0,0,81,7,1,0,0,0,82,83,5,20,0,0,83,85,5,2,0,0,84,86,3,10,5,0,\n 85,84,1,0,0,0,85,86,1,0,0,0,86,87,1,0,0,0,87,88,5,3,0,0,88,9,1,0,\n 0,0,89,95,3,2,1,0,90,91,3,2,1,0,91,92,5,10,0,0,92,93,3,10,5,0,93,\n 95,1,0,0,0,94,89,1,0,0,0,94,90,1,0,0,0,95,11,1,0,0,0,96,98,5,11,\n 0,0,97,99,3,14,7,0,98,97,1,0,0,0,98,99,1,0,0,0,99,100,1,0,0,0,100,\n 101,5,12,0,0,101,13,1,0,0,0,102,108,3,2,1,0,103,104,3,2,1,0,104,\n 105,5,10,0,0,105,106,3,14,7,0,106,108,1,0,0,0,107,102,1,0,0,0,107,\n 103,1,0,0,0,108,15,1,0,0,0,109,114,3,18,9,0,110,114,3,20,10,0,111,\n 114,3,22,11,0,112,114,3,24,12,0,113,109,1,0,0,0,113,110,1,0,0,0,\n 113,111,1,0,0,0,113,112,1,0,0,0,114,17,1,0,0,0,115,116,7,2,0,0,116,\n 19,1,0,0,0,117,118,5,19,0,0,118,21,1,0,0,0,119,120,5,16,0,0,120,\n 23,1,0,0,0,121,122,5,17,0,0,122,25,1,0,0,0,123,124,5,13,0,0,124,\n 125,5,20,0,0,125,27,1,0,0,0,10,46,65,67,76,80,85,94,98,107,113\n ];\n\n private static __ATN: antlr.ATN;\n public static get _ATN(): antlr.ATN {\n if (!IfcExpressionParser.__ATN) {\n IfcExpressionParser.__ATN = new antlr.ATNDeserializer().deserialize(IfcExpressionParser._serializedATN);\n }\n\n return IfcExpressionParser.__ATN;\n }\n\n\n private static readonly vocabulary = new antlr.Vocabulary(IfcExpressionParser.literalNames, IfcExpressionParser.symbolicNames, []);\n\n public override get vocabulary(): antlr.Vocabulary {\n return IfcExpressionParser.vocabulary;\n }\n\n private static readonly decisionsToDFA = IfcExpressionParser._ATN.decisionToState.map( (ds: antlr.DecisionState, index: number) => new antlr.DFA(ds, index) );\n}\n\nexport class ExprContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public singleExpr(): SingleExprContext {\n return this.getRuleContext(0, SingleExprContext)!;\n }\n public EOF(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.EOF, 0)!;\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_expr;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterExpr) {\n listener.enterExpr(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitExpr) {\n listener.exitExpr(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitExpr) {\n return visitor.visitExpr(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class SingleExprContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_singleExpr;\n }\n public override copyFrom(ctx: SingleExprContext): void {\n super.copyFrom(ctx);\n }\n}\nexport class SEUnaryMultipleMinusContext extends SingleExprContext {\n public _sub?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext {\n return this.getRuleContext(0, SingleExprContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEUnaryMultipleMinus) {\n listener.enterSEUnaryMultipleMinus(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEUnaryMultipleMinus) {\n listener.exitSEUnaryMultipleMinus(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEUnaryMultipleMinus) {\n return visitor.visitSEUnaryMultipleMinus(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEParenthesisContext extends SingleExprContext {\n public _sub?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext {\n return this.getRuleContext(0, SingleExprContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEParenthesis) {\n listener.enterSEParenthesis(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEParenthesis) {\n listener.exitSEParenthesis(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEParenthesis) {\n return visitor.visitSEParenthesis(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEUnaryMinusContext extends SingleExprContext {\n public _sub?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext {\n return this.getRuleContext(0, SingleExprContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEUnaryMinus) {\n listener.enterSEUnaryMinus(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEUnaryMinus) {\n listener.exitSEUnaryMinus(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEUnaryMinus) {\n return visitor.visitSEUnaryMinus(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SENotContext extends SingleExprContext {\n public _sub?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext {\n return this.getRuleContext(0, SingleExprContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSENot) {\n listener.enterSENot(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSENot) {\n listener.exitSENot(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSENot) {\n return visitor.visitSENot(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEVariableRefContext extends SingleExprContext {\n public _sub?: VariableRefContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public variableRef(): VariableRefContext {\n return this.getRuleContext(0, VariableRefContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEVariableRef) {\n listener.enterSEVariableRef(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEVariableRef) {\n listener.exitSEVariableRef(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEVariableRef) {\n return visitor.visitSEVariableRef(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEFunctionCallContext extends SingleExprContext {\n public _sub?: FunctionCallContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public functionCall(): FunctionCallContext {\n return this.getRuleContext(0, FunctionCallContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEFunctionCall) {\n listener.enterSEFunctionCall(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEFunctionCall) {\n listener.exitSEFunctionCall(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEFunctionCall) {\n return visitor.visitSEFunctionCall(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SELiteralContext extends SingleExprContext {\n public _sub?: LiteralContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public literal(): LiteralContext {\n return this.getRuleContext(0, LiteralContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSELiteral) {\n listener.enterSELiteral(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSELiteral) {\n listener.exitSELiteral(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSELiteral) {\n return visitor.visitSELiteral(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEArrayExprContext extends SingleExprContext {\n public _sub?: ArrayExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public arrayExpr(): ArrayExprContext {\n return this.getRuleContext(0, ArrayExprContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEArrayExpr) {\n listener.enterSEArrayExpr(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEArrayExpr) {\n listener.exitSEArrayExpr(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEArrayExpr) {\n return visitor.visitSEArrayExpr(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEPowerContext extends SingleExprContext {\n public _left?: SingleExprContext;\n public _op?: Token | null;\n public _right?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext[];\n public singleExpr(i: number): SingleExprContext | null;\n public singleExpr(i?: number): SingleExprContext[] | SingleExprContext | null {\n if (i === undefined) {\n return this.getRuleContexts(SingleExprContext);\n }\n\n return this.getRuleContext(i, SingleExprContext);\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEPower) {\n listener.enterSEPower(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEPower) {\n listener.exitSEPower(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEPower) {\n return visitor.visitSEPower(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEMulDivContext extends SingleExprContext {\n public _left?: SingleExprContext;\n public _op?: Token | null;\n public _right?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext[];\n public singleExpr(i: number): SingleExprContext | null;\n public singleExpr(i?: number): SingleExprContext[] | SingleExprContext | null {\n if (i === undefined) {\n return this.getRuleContexts(SingleExprContext);\n }\n\n return this.getRuleContext(i, SingleExprContext);\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEMulDiv) {\n listener.enterSEMulDiv(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEMulDiv) {\n listener.exitSEMulDiv(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEMulDiv) {\n return visitor.visitSEMulDiv(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEAddSubContext extends SingleExprContext {\n public _left?: SingleExprContext;\n public _op?: Token | null;\n public _right?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext[];\n public singleExpr(i: number): SingleExprContext | null;\n public singleExpr(i?: number): SingleExprContext[] | SingleExprContext | null {\n if (i === undefined) {\n return this.getRuleContexts(SingleExprContext);\n }\n\n return this.getRuleContext(i, SingleExprContext);\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEAddSub) {\n listener.enterSEAddSub(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEAddSub) {\n listener.exitSEAddSub(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEAddSub) {\n return visitor.visitSEAddSub(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEComparisonContext extends SingleExprContext {\n public _left?: SingleExprContext;\n public _right?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public CMP_OP(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.CMP_OP, 0)!;\n }\n public singleExpr(): SingleExprContext[];\n public singleExpr(i: number): SingleExprContext | null;\n public singleExpr(i?: number): SingleExprContext[] | SingleExprContext | null {\n if (i === undefined) {\n return this.getRuleContexts(SingleExprContext);\n }\n\n return this.getRuleContext(i, SingleExprContext);\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEComparison) {\n listener.enterSEComparison(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEComparison) {\n listener.exitSEComparison(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEComparison) {\n return visitor.visitSEComparison(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEBooleanBinaryOpContext extends SingleExprContext {\n public _left?: SingleExprContext;\n public _op?: Token | null;\n public _right?: SingleExprContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext[];\n public singleExpr(i: number): SingleExprContext | null;\n public singleExpr(i?: number): SingleExprContext[] | SingleExprContext | null {\n if (i === undefined) {\n return this.getRuleContexts(SingleExprContext);\n }\n\n return this.getRuleContext(i, SingleExprContext);\n }\n public BOOLEAN_BINARY_OP(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.BOOLEAN_BINARY_OP, 0)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEBooleanBinaryOp) {\n listener.enterSEBooleanBinaryOp(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEBooleanBinaryOp) {\n listener.exitSEBooleanBinaryOp(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEBooleanBinaryOp) {\n return visitor.visitSEBooleanBinaryOp(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class SEMethodCallContext extends SingleExprContext {\n public _target?: SingleExprContext;\n public _call?: MethodCallChainContext;\n public constructor(ctx: SingleExprContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public singleExpr(): SingleExprContext {\n return this.getRuleContext(0, SingleExprContext)!;\n }\n public methodCallChain(): MethodCallChainContext {\n return this.getRuleContext(0, MethodCallChainContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterSEMethodCall) {\n listener.enterSEMethodCall(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitSEMethodCall) {\n listener.exitSEMethodCall(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitSEMethodCall) {\n return visitor.visitSEMethodCall(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class MethodCallChainContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_methodCallChain;\n }\n public override copyFrom(ctx: MethodCallChainContext): void {\n super.copyFrom(ctx);\n }\n}\nexport class MethodCallChainInnerContext extends MethodCallChainContext {\n public _target?: MethodAccessorContext;\n public _call?: MethodCallChainContext;\n public constructor(ctx: MethodCallChainContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public DOT(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.DOT, 0)!;\n }\n public methodAccessor(): MethodAccessorContext {\n return this.getRuleContext(0, MethodAccessorContext)!;\n }\n public methodCallChain(): MethodCallChainContext {\n return this.getRuleContext(0, MethodCallChainContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterMethodCallChainInner) {\n listener.enterMethodCallChainInner(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitMethodCallChainInner) {\n listener.exitMethodCallChainInner(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitMethodCallChainInner) {\n return visitor.visitMethodCallChainInner(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class MethodCallChainEndContext extends MethodCallChainContext {\n public _call?: MethodAccessorContext;\n public constructor(ctx: MethodCallChainContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public DOT(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.DOT, 0)!;\n }\n public methodAccessor(): MethodAccessorContext {\n return this.getRuleContext(0, MethodAccessorContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterMethodCallChainEnd) {\n listener.enterMethodCallChainEnd(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitMethodCallChainEnd) {\n listener.exitMethodCallChainEnd(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitMethodCallChainEnd) {\n return visitor.visitMethodCallChainEnd(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class MethodAccessorContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_methodAccessor;\n }\n public override copyFrom(ctx: MethodAccessorContext): void {\n super.copyFrom(ctx);\n }\n}\nexport class MethodFunctionCallContext extends MethodAccessorContext {\n public constructor(ctx: MethodAccessorContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public functionCall(): FunctionCallContext {\n return this.getRuleContext(0, FunctionCallContext)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterMethodFunctionCall) {\n listener.enterMethodFunctionCall(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitMethodFunctionCall) {\n listener.exitMethodFunctionCall(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitMethodFunctionCall) {\n return visitor.visitMethodFunctionCall(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\nexport class MethodPropertyAccessContext extends MethodAccessorContext {\n public constructor(ctx: MethodAccessorContext) {\n super(ctx.parent, ctx.invokingState);\n super.copyFrom(ctx);\n }\n public IDENTIFIER(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.IDENTIFIER, 0)!;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterMethodPropertyAccess) {\n listener.enterMethodPropertyAccess(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitMethodPropertyAccess) {\n listener.exitMethodPropertyAccess(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitMethodPropertyAccess) {\n return visitor.visitMethodPropertyAccess(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class FunctionCallContext extends antlr.ParserRuleContext {\n public _sub?: ExprListContext;\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public IDENTIFIER(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.IDENTIFIER, 0)!;\n }\n public exprList(): ExprListContext | null {\n return this.getRuleContext(0, ExprListContext);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_functionCall;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterFunctionCall) {\n listener.enterFunctionCall(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitFunctionCall) {\n listener.exitFunctionCall(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitFunctionCall) {\n return visitor.visitFunctionCall(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class ExprListContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public singleExpr(): SingleExprContext {\n return this.getRuleContext(0, SingleExprContext)!;\n }\n public exprList(): ExprListContext | null {\n return this.getRuleContext(0, ExprListContext);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_exprList;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterExprList) {\n listener.enterExprList(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitExprList) {\n listener.exitExprList(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitExprList) {\n return visitor.visitExprList(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class ArrayExprContext extends antlr.ParserRuleContext {\n public _sub?: ArrayElementListContext;\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public arrayElementList(): ArrayElementListContext | null {\n return this.getRuleContext(0, ArrayElementListContext);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_arrayExpr;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterArrayExpr) {\n listener.enterArrayExpr(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitArrayExpr) {\n listener.exitArrayExpr(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitArrayExpr) {\n return visitor.visitArrayExpr(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class ArrayElementListContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public singleExpr(): SingleExprContext {\n return this.getRuleContext(0, SingleExprContext)!;\n }\n public arrayElementList(): ArrayElementListContext | null {\n return this.getRuleContext(0, ArrayElementListContext);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_arrayElementList;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterArrayElementList) {\n listener.enterArrayElementList(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitArrayElementList) {\n listener.exitArrayElementList(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitArrayElementList) {\n return visitor.visitArrayElementList(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class LiteralContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public numLiteral(): NumLiteralContext | null {\n return this.getRuleContext(0, NumLiteralContext);\n }\n public stringLiteral(): StringLiteralContext | null {\n return this.getRuleContext(0, StringLiteralContext);\n }\n public booleanLiteral(): BooleanLiteralContext | null {\n return this.getRuleContext(0, BooleanLiteralContext);\n }\n public logicalLiteral(): LogicalLiteralContext | null {\n return this.getRuleContext(0, LogicalLiteralContext);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_literal;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterLiteral) {\n listener.enterLiteral(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitLiteral) {\n listener.exitLiteral(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitLiteral) {\n return visitor.visitLiteral(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class NumLiteralContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public INT(): antlr.TerminalNode | null {\n return this.getToken(IfcExpressionParser.INT, 0);\n }\n public FLOAT(): antlr.TerminalNode | null {\n return this.getToken(IfcExpressionParser.FLOAT, 0);\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_numLiteral;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterNumLiteral) {\n listener.enterNumLiteral(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitNumLiteral) {\n listener.exitNumLiteral(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitNumLiteral) {\n return visitor.visitNumLiteral(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class StringLiteralContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public QUOTED_STRING(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.QUOTED_STRING, 0)!;\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_stringLiteral;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterStringLiteral) {\n listener.enterStringLiteral(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitStringLiteral) {\n listener.exitStringLiteral(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitStringLiteral) {\n return visitor.visitStringLiteral(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class BooleanLiteralContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public BOOLEAN(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.BOOLEAN, 0)!;\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_booleanLiteral;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterBooleanLiteral) {\n listener.enterBooleanLiteral(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitBooleanLiteral) {\n listener.exitBooleanLiteral(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitBooleanLiteral) {\n return visitor.visitBooleanLiteral(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class LogicalLiteralContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public LOGICAL_UNKNOWN(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.LOGICAL_UNKNOWN, 0)!;\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_logicalLiteral;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterLogicalLiteral) {\n listener.enterLogicalLiteral(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitLogicalLiteral) {\n listener.exitLogicalLiteral(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitLogicalLiteral) {\n return visitor.visitLogicalLiteral(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n\n\nexport class VariableRefContext extends antlr.ParserRuleContext {\n public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {\n super(parent, invokingState);\n }\n public IDENTIFIER(): antlr.TerminalNode {\n return this.getToken(IfcExpressionParser.IDENTIFIER, 0)!;\n }\n public override get ruleIndex(): number {\n return IfcExpressionParser.RULE_variableRef;\n }\n public override enterRule(listener: IfcExpressionListener): void {\n if(listener.enterVariableRef) {\n listener.enterVariableRef(this);\n }\n }\n public override exitRule(listener: IfcExpressionListener): void {\n if(listener.exitVariableRef) {\n listener.exitVariableRef(this);\n }\n }\n public override accept<Result>(visitor: IfcExpressionVisitor<Result>): Result | null {\n if (visitor.visitVariableRef) {\n return visitor.visitVariableRef(this);\n } else {\n return visitor.visitChildren(this);\n }\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
- // Generated from IfcExpression.g4 by ANTLR 4.13.0
2
- import { ParseTreeVisitor } from 'antlr4';
1
+ import { AbstractParseTreeVisitor } from "antlr4ng";
3
2
  /**
4
3
  * This interface defines a complete generic visitor for a parse tree produced
5
4
  * by `IfcExpressionParser`.
@@ -7,6 +6,6 @@ import { ParseTreeVisitor } from 'antlr4';
7
6
  * @param <Result> The return type of the visit operation. Use `void` for
8
7
  * operations with no return type.
9
8
  */
10
- export default class IfcExpressionVisitor extends ParseTreeVisitor {
9
+ export class IfcExpressionVisitor extends AbstractParseTreeVisitor {
11
10
  }
12
11
  //# sourceMappingURL=IfcExpressionVisitor.js.map