ifc-expressions 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ExprVisitor.d.ts +7 -3
- package/dist/IfcExpression.d.ts +27 -24
- package/dist/IfcExpressionErrorListener.d.ts +1 -1
- package/dist/IfcExpressionUtils.d.ts +2 -0
- package/dist/cjs/ExprVisitor.js +70 -36
- package/dist/cjs/ExprVisitor.js.map +1 -1
- package/dist/cjs/IfcExpression.js +42 -41
- package/dist/cjs/IfcExpression.js.map +1 -1
- package/dist/cjs/IfcExpressionErrorListener.js +4 -4
- package/dist/cjs/IfcExpressionErrorListener.js.map +1 -1
- package/dist/cjs/IfcExpressionUtils.js +12 -0
- package/dist/cjs/IfcExpressionUtils.js.map +1 -0
- package/dist/cjs/SyntaxErrorException.js +2 -2
- package/dist/cjs/SyntaxErrorException.js.map +1 -1
- package/dist/cjs/context/IfcElementAccessor.js +8 -8
- package/dist/cjs/context/IfcElementAccessor.js.map +1 -1
- package/dist/cjs/context/IfcExpressionContext.js.map +1 -1
- package/dist/cjs/context/IfcPropertyAccessor.js +2 -2
- package/dist/cjs/context/IfcPropertyAccessor.js.map +1 -1
- package/dist/cjs/context/IfcPropertySetAccessor.js +2 -2
- package/dist/cjs/context/IfcPropertySetAccessor.js.map +1 -1
- package/dist/cjs/context/IfcRootObjectAccessor.js +4 -4
- package/dist/cjs/context/IfcRootObjectAccessor.js.map +1 -1
- package/dist/cjs/context/IfcTypeObjectAccessor.js +4 -4
- package/dist/cjs/context/IfcTypeObjectAccessor.js.map +1 -1
- package/dist/cjs/context/NamedObjectAccessor.js +3 -3
- package/dist/cjs/context/NamedObjectAccessor.js.map +1 -1
- package/dist/cjs/context/ObjectAccessor.js +9 -0
- package/dist/cjs/context/ObjectAccessor.js.map +1 -1
- package/dist/cjs/expression/Expr.js.map +1 -1
- package/dist/cjs/expression/Expr0.js +18 -2
- package/dist/cjs/expression/Expr0.js.map +1 -1
- package/dist/cjs/expression/Expr1.js +46 -2
- package/dist/cjs/expression/Expr1.js.map +1 -1
- package/dist/cjs/expression/Expr2.js +48 -2
- package/dist/cjs/expression/Expr2.js.map +1 -1
- package/dist/cjs/expression/Expr2LeftBeforeRight.js +45 -0
- package/dist/cjs/expression/Expr2LeftBeforeRight.js.map +1 -0
- package/dist/cjs/expression/ExprBase.js +20 -0
- package/dist/cjs/expression/ExprBase.js.map +1 -0
- package/dist/cjs/expression/ExprEvalResult.js +165 -0
- package/dist/cjs/expression/ExprEvalResult.js.map +1 -0
- package/dist/cjs/expression/ExprKind.js +24 -0
- package/dist/cjs/expression/ExprKind.js.map +1 -0
- package/dist/cjs/expression/IfcExpressionEvaluationException.js.map +1 -1
- package/dist/cjs/expression/LiteralExpr.js +25 -0
- package/dist/cjs/expression/LiteralExpr.js.map +1 -0
- package/dist/cjs/expression/LocalContextKeys.js +7 -0
- package/dist/cjs/expression/LocalContextKeys.js.map +1 -0
- package/dist/cjs/expression/function/Func.js +93 -0
- package/dist/cjs/expression/function/Func.js.map +1 -0
- package/dist/cjs/expression/function/FuncArg.js +33 -0
- package/dist/cjs/expression/function/FuncArg.js.map +1 -0
- package/dist/cjs/expression/function/FunctionExpr.js +33 -0
- package/dist/cjs/expression/function/FunctionExpr.js.map +1 -0
- package/dist/cjs/expression/function/IfcExpressionFunctionConfigException.js +10 -0
- package/dist/cjs/expression/function/IfcExpressionFunctionConfigException.js.map +1 -0
- package/dist/cjs/expression/function/IfcExpressionFunctions.js +26 -0
- package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgBase.js +34 -0
- package/dist/cjs/expression/function/arg/FuncArgBase.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgInt.js +25 -0
- package/dist/cjs/expression/function/arg/FuncArgInt.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgNumeric.js +22 -0
- package/dist/cjs/expression/function/arg/FuncArgNumeric.js.map +1 -0
- package/dist/cjs/expression/function/impl/MAP.js +77 -0
- package/dist/cjs/expression/function/impl/MAP.js.map +1 -0
- package/dist/cjs/expression/function/impl/ROUND.js +29 -0
- package/dist/cjs/expression/function/impl/ROUND.js.map +1 -0
- package/dist/cjs/expression/numeric/DivideExpr.js +11 -9
- package/dist/cjs/expression/numeric/DivideExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/MinusExpr.js +7 -9
- package/dist/cjs/expression/numeric/MinusExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/MultiplyExpr.js +7 -9
- package/dist/cjs/expression/numeric/MultiplyExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/NumParenthesisExpr.js +6 -5
- package/dist/cjs/expression/numeric/NumParenthesisExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/NumericLiteralExpr.js +5 -4
- package/dist/cjs/expression/numeric/NumericLiteralExpr.js.map +1 -1
- package/dist/cjs/expression/numeric/PlusExpr.js +7 -9
- package/dist/cjs/expression/numeric/PlusExpr.js.map +1 -1
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js +21 -7
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js +5 -4
- package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js +19 -5
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -1
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js +33 -8
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js.map +1 -1
- package/dist/cjs/expression/reference/ObjectReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/reference/PropObjectReferenceExpr.js +5 -4
- package/dist/cjs/expression/reference/PropObjectReferenceExpr.js.map +1 -1
- package/dist/cjs/expression/string/StringConcatExpr.js +7 -6
- package/dist/cjs/expression/string/StringConcatExpr.js.map +1 -1
- package/dist/cjs/expression/string/StringLiteralExpr.js +5 -4
- package/dist/cjs/expression/string/StringLiteralExpr.js.map +1 -1
- package/dist/cjs/expression/structure/ArrayExpr.js +26 -0
- package/dist/cjs/expression/structure/ArrayExpr.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionLexer.js +142 -0
- package/dist/cjs/gen/parser/IfcExpressionLexer.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionListener.js.map +1 -0
- package/dist/cjs/{parser → gen/parser}/IfcExpressionParser.js +148 -104
- package/dist/cjs/gen/parser/IfcExpressionParser.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionVisitor.js.map +1 -0
- package/dist/cjs/value/ArrayValue.js +23 -0
- package/dist/cjs/value/ArrayValue.js.map +1 -0
- package/dist/cjs/value/BooleanValue.js +12 -3
- package/dist/cjs/value/BooleanValue.js.map +1 -1
- package/dist/cjs/value/LiteralValue.js.map +1 -1
- package/dist/cjs/value/LiteralValueAnyArity.js.map +1 -1
- package/dist/cjs/value/LogicalValue.js +14 -3
- package/dist/cjs/value/LogicalValue.js.map +1 -1
- package/dist/cjs/value/NumericValue.js +16 -7
- package/dist/cjs/value/NumericValue.js.map +1 -1
- package/dist/cjs/value/PrimitiveValueType.js.map +1 -1
- package/dist/cjs/value/ReferenceValue.js +12 -3
- package/dist/cjs/value/ReferenceValue.js.map +1 -1
- package/dist/cjs/value/StringValue.js +12 -3
- package/dist/cjs/value/StringValue.js.map +1 -1
- package/dist/cjs/value/Value.js +0 -10
- package/dist/cjs/value/Value.js.map +1 -1
- package/dist/context/IfcElementAccessor.d.ts +6 -6
- package/dist/context/IfcExpressionContext.d.ts +2 -2
- package/dist/context/IfcPropertyAccessor.d.ts +4 -4
- package/dist/context/IfcPropertySetAccessor.d.ts +4 -4
- package/dist/context/IfcRootObjectAccessor.d.ts +2 -2
- package/dist/context/IfcTypeObjectAccessor.d.ts +4 -4
- package/dist/context/NamedObjectAccessor.d.ts +2 -2
- package/dist/context/ObjectAccessor.d.ts +2 -1
- package/dist/expression/Expr.d.ts +5 -2
- package/dist/expression/Expr0.d.ts +9 -5
- package/dist/expression/Expr1.d.ts +20 -5
- package/dist/expression/Expr2.d.ts +15 -6
- package/dist/expression/Expr2LeftBeforeRight.d.ts +14 -0
- package/dist/expression/ExprBase.d.ts +11 -0
- package/dist/expression/ExprEvalResult.d.ts +125 -0
- package/dist/expression/ExprKind.d.ts +19 -0
- package/dist/expression/LiteralExpr.d.ts +11 -0
- package/dist/expression/LocalContextKeys.d.ts +3 -0
- package/dist/expression/function/Func.d.ts +30 -0
- package/dist/expression/function/FuncArg.d.ts +18 -0
- package/dist/expression/function/FunctionExpr.d.ts +13 -0
- package/dist/expression/function/IfcExpressionFunctionConfigException.d.ts +3 -0
- package/dist/expression/function/IfcExpressionFunctions.d.ts +7 -0
- package/dist/expression/function/arg/FuncArgBase.d.ts +19 -0
- package/dist/expression/function/arg/FuncArgInt.d.ts +8 -0
- package/dist/expression/function/arg/FuncArgNumeric.d.ts +8 -0
- package/dist/expression/function/impl/MAP.d.ts +10 -0
- package/dist/expression/function/impl/ROUND.d.ts +9 -0
- package/dist/expression/numeric/DivideExpr.d.ts +8 -6
- package/dist/expression/numeric/MinusExpr.d.ts +7 -6
- package/dist/expression/numeric/MultiplyExpr.d.ts +7 -6
- package/dist/expression/numeric/NumParenthesisExpr.d.ts +6 -6
- package/dist/expression/numeric/NumericLiteralExpr.d.ts +6 -5
- package/dist/expression/numeric/PlusExpr.d.ts +6 -6
- package/dist/expression/reference/AttributeReferenceExpr.d.ts +12 -8
- package/dist/expression/reference/ElemObjectReferenceExpr.d.ts +5 -5
- package/dist/expression/reference/NestedObjectChainEndExpr.d.ts +7 -6
- package/dist/expression/reference/NestedObjectChainExpr.d.ts +11 -8
- package/dist/expression/reference/ObjectReferenceExpr.d.ts +2 -2
- package/dist/expression/reference/PropObjectReferenceExpr.d.ts +5 -5
- package/dist/expression/string/StringConcatExpr.d.ts +6 -6
- package/dist/expression/string/StringLiteralExpr.d.ts +5 -5
- package/dist/expression/structure/ArrayExpr.d.ts +11 -0
- package/dist/{parser → gen/parser}/IfcExpressionLexer.d.ts +10 -9
- package/dist/{parser → gen/parser}/IfcExpressionParser.d.ts +10 -9
- package/dist/mjs/ExprVisitor.js +57 -23
- package/dist/mjs/ExprVisitor.js.map +1 -1
- package/dist/mjs/IfcExpression.js +21 -22
- package/dist/mjs/IfcExpression.js.map +1 -1
- package/dist/mjs/IfcExpressionErrorListener.js +3 -3
- package/dist/mjs/IfcExpressionErrorListener.js.map +1 -1
- package/dist/mjs/IfcExpressionUtils.js +7 -0
- package/dist/mjs/IfcExpressionUtils.js.map +1 -0
- package/dist/mjs/SyntaxErrorException.js +2 -2
- package/dist/mjs/SyntaxErrorException.js.map +1 -1
- package/dist/mjs/context/IfcElementAccessor.js +6 -6
- package/dist/mjs/context/IfcElementAccessor.js.map +1 -1
- package/dist/mjs/context/IfcExpressionContext.js.map +1 -1
- package/dist/mjs/context/IfcPropertyAccessor.js +1 -1
- package/dist/mjs/context/IfcPropertyAccessor.js.map +1 -1
- package/dist/mjs/context/IfcPropertySetAccessor.js +1 -1
- package/dist/mjs/context/IfcPropertySetAccessor.js.map +1 -1
- package/dist/mjs/context/IfcRootObjectAccessor.js +2 -2
- package/dist/mjs/context/IfcRootObjectAccessor.js.map +1 -1
- package/dist/mjs/context/IfcTypeObjectAccessor.js +3 -3
- package/dist/mjs/context/IfcTypeObjectAccessor.js.map +1 -1
- package/dist/mjs/context/NamedObjectAccessor.js +1 -1
- package/dist/mjs/context/NamedObjectAccessor.js.map +1 -1
- package/dist/mjs/context/ObjectAccessor.js +7 -1
- package/dist/mjs/context/ObjectAccessor.js.map +1 -1
- package/dist/mjs/expression/Expr.js.map +1 -1
- package/dist/mjs/expression/Expr0.js +18 -2
- package/dist/mjs/expression/Expr0.js.map +1 -1
- package/dist/mjs/expression/Expr1.js +46 -2
- package/dist/mjs/expression/Expr1.js.map +1 -1
- package/dist/mjs/expression/Expr2.js +48 -2
- package/dist/mjs/expression/Expr2.js.map +1 -1
- package/dist/mjs/expression/Expr2LeftBeforeRight.js +41 -0
- package/dist/mjs/expression/Expr2LeftBeforeRight.js.map +1 -0
- package/dist/mjs/expression/ExprBase.js +16 -0
- package/dist/mjs/expression/ExprBase.js.map +1 -0
- package/dist/mjs/expression/ExprEvalResult.js +144 -0
- package/dist/mjs/expression/ExprEvalResult.js.map +1 -0
- package/dist/mjs/expression/ExprKind.js +21 -0
- package/dist/mjs/expression/ExprKind.js.map +1 -0
- package/dist/mjs/expression/LiteralExpr.js +21 -0
- package/dist/mjs/expression/LiteralExpr.js.map +1 -0
- package/dist/mjs/expression/LocalContextKeys.js +4 -0
- package/dist/mjs/expression/LocalContextKeys.js.map +1 -0
- package/dist/mjs/expression/function/Func.js +89 -0
- package/dist/mjs/expression/function/Func.js.map +1 -0
- package/dist/mjs/expression/function/FuncArg.js +29 -0
- package/dist/mjs/expression/function/FuncArg.js.map +1 -0
- package/dist/mjs/expression/function/FunctionExpr.js +29 -0
- package/dist/mjs/expression/function/FunctionExpr.js.map +1 -0
- package/dist/mjs/expression/function/IfcExpressionFunctionConfigException.js +6 -0
- package/dist/mjs/expression/function/IfcExpressionFunctionConfigException.js.map +1 -0
- package/dist/mjs/expression/function/IfcExpressionFunctions.js +22 -0
- package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgBase.js +30 -0
- package/dist/mjs/expression/function/arg/FuncArgBase.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgInt.js +21 -0
- package/dist/mjs/expression/function/arg/FuncArgInt.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgNumeric.js +18 -0
- package/dist/mjs/expression/function/arg/FuncArgNumeric.js.map +1 -0
- package/dist/mjs/expression/function/impl/MAP.js +73 -0
- package/dist/mjs/expression/function/impl/MAP.js.map +1 -0
- package/dist/mjs/expression/function/impl/ROUND.js +25 -0
- package/dist/mjs/expression/function/impl/ROUND.js.map +1 -0
- package/dist/mjs/expression/numeric/DivideExpr.js +10 -8
- package/dist/mjs/expression/numeric/DivideExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/MinusExpr.js +6 -8
- package/dist/mjs/expression/numeric/MinusExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/MultiplyExpr.js +6 -8
- package/dist/mjs/expression/numeric/MultiplyExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/NumParenthesisExpr.js +5 -4
- package/dist/mjs/expression/numeric/NumParenthesisExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/NumericLiteralExpr.js +5 -4
- package/dist/mjs/expression/numeric/NumericLiteralExpr.js.map +1 -1
- package/dist/mjs/expression/numeric/PlusExpr.js +6 -8
- package/dist/mjs/expression/numeric/PlusExpr.js.map +1 -1
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js +20 -6
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js +4 -3
- package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js +19 -5
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -1
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js +33 -8
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js.map +1 -1
- package/dist/mjs/expression/reference/ObjectReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/reference/PropObjectReferenceExpr.js +4 -3
- package/dist/mjs/expression/reference/PropObjectReferenceExpr.js.map +1 -1
- package/dist/mjs/expression/string/StringConcatExpr.js +6 -5
- package/dist/mjs/expression/string/StringConcatExpr.js.map +1 -1
- package/dist/mjs/expression/string/StringLiteralExpr.js +5 -4
- package/dist/mjs/expression/string/StringLiteralExpr.js.map +1 -1
- package/dist/mjs/expression/structure/ArrayExpr.js +22 -0
- package/dist/mjs/expression/structure/ArrayExpr.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionLexer.js +140 -0
- package/dist/mjs/gen/parser/IfcExpressionLexer.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionListener.js.map +1 -0
- package/dist/mjs/{parser → gen/parser}/IfcExpressionParser.js +148 -104
- package/dist/mjs/gen/parser/IfcExpressionParser.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionVisitor.js.map +1 -0
- package/dist/mjs/value/ArrayValue.js +19 -0
- package/dist/mjs/value/ArrayValue.js.map +1 -0
- package/dist/mjs/value/BooleanValue.js +12 -3
- package/dist/mjs/value/BooleanValue.js.map +1 -1
- package/dist/mjs/value/LiteralValue.js.map +1 -1
- package/dist/mjs/value/LiteralValueAnyArity.js.map +1 -1
- package/dist/mjs/value/LogicalValue.js +14 -3
- package/dist/mjs/value/LogicalValue.js.map +1 -1
- package/dist/mjs/value/NumericValue.js +16 -4
- package/dist/mjs/value/NumericValue.js.map +1 -1
- package/dist/mjs/value/ReferenceValue.js +12 -3
- package/dist/mjs/value/ReferenceValue.js.map +1 -1
- package/dist/mjs/value/StringValue.js +12 -3
- package/dist/mjs/value/StringValue.js.map +1 -1
- package/dist/mjs/value/Value.js +1 -8
- package/dist/mjs/value/Value.js.map +1 -1
- package/dist/value/ArrayValue.d.ts +12 -0
- package/dist/value/BooleanValue.d.ts +9 -2
- package/dist/value/LiteralValue.d.ts +7 -6
- package/dist/value/LiteralValueAnyArity.d.ts +2 -2
- package/dist/value/LogicalValue.d.ts +9 -2
- package/dist/value/NumericValue.d.ts +12 -5
- package/dist/value/ReferenceValue.d.ts +9 -2
- package/dist/value/StringValue.d.ts +9 -2
- package/dist/value/Value.d.ts +3 -4
- package/package.json +4 -3
- package/dist/cjs/expression/ArrayExpr.js +0 -3
- package/dist/cjs/expression/ArrayExpr.js.map +0 -1
- package/dist/cjs/expression/numeric/MultiplyByExpr.js +0 -18
- package/dist/cjs/expression/numeric/MultiplyByExpr.js.map +0 -1
- package/dist/cjs/parser/IfcExpressionLexer.js +0 -140
- package/dist/cjs/parser/IfcExpressionLexer.js.map +0 -1
- package/dist/cjs/parser/IfcExpressionListener.js.map +0 -1
- package/dist/cjs/parser/IfcExpressionParser.js.map +0 -1
- package/dist/cjs/parser/IfcExpressionVisitor.js.map +0 -1
- package/dist/cjs/utils.js +0 -12
- package/dist/cjs/utils.js.map +0 -1
- package/dist/expression/ArrayExpr.d.ts +0 -3
- package/dist/expression/numeric/MultiplyByExpr.d.ts +0 -8
- package/dist/mjs/expression/ArrayExpr.js +0 -2
- package/dist/mjs/expression/ArrayExpr.js.map +0 -1
- package/dist/mjs/expression/numeric/MultiplyByExpr.js +0 -14
- package/dist/mjs/expression/numeric/MultiplyByExpr.js.map +0 -1
- package/dist/mjs/parser/IfcExpressionLexer.js +0 -138
- package/dist/mjs/parser/IfcExpressionLexer.js.map +0 -1
- package/dist/mjs/parser/IfcExpressionListener.js.map +0 -1
- package/dist/mjs/parser/IfcExpressionParser.js.map +0 -1
- package/dist/mjs/parser/IfcExpressionVisitor.js.map +0 -1
- package/dist/mjs/utils.js +0 -7
- package/dist/mjs/utils.js.map +0 -1
- package/dist/utils.d.ts +0 -2
- /package/dist/cjs/{parser → gen/parser}/IfcExpressionListener.js +0 -0
- /package/dist/cjs/{parser → gen/parser}/IfcExpressionVisitor.js +0 -0
- /package/dist/{parser → gen/parser}/IfcExpressionListener.d.ts +0 -0
- /package/dist/{parser → gen/parser}/IfcExpressionVisitor.d.ts +0 -0
- /package/dist/mjs/{parser → gen/parser}/IfcExpressionListener.js +0 -0
- /package/dist/mjs/{parser → gen/parser}/IfcExpressionVisitor.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["gen/parser/IfcExpressionParser.ts"],"names":[],"mappings":"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AAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACvE,EAAE,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,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;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,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,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;IACtE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,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,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;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,GAAG,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;IACtE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,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;IACtE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,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;IACtE,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,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;IACtE,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,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,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,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,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,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;IACtE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACvE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;IACvE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,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,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACtE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,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;IACtE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,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,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;IACtE,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,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC;IACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,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;IACvE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,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,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;IACvE,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,EAAC,CAAC;IACvE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,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,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,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,GAAG;IACxE,CAAC,EAAC,EAAE,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,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;IACtE,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,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;IACtE,GAAG,EAAC,CAAC,EAAC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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 INT = 12;\n\tpublic static readonly FLOAT = 13;\n\tpublic static readonly SIGN = 14;\n\tpublic static readonly PROP = 15;\n\tpublic static readonly ELEM = 16;\n\tpublic static readonly RESERVED_ATTRIBUTE_NAME = 17;\n\tpublic static readonly RESERVED_RELATION_NAME = 18;\n\tpublic static readonly QUOTED_STRING = 19;\n\tpublic static readonly BRACKETED_STRING = 20;\n\tpublic static readonly IDENTIFIER = 21;\n\tpublic static readonly WS = 22;\n\tpublic static readonly NEWLINE = 23;\n\tpublic static readonly EOF = Token.EOF;\n\tpublic static readonly RULE_expr = 0;\n\tpublic static readonly RULE_numExpr = 1;\n\tpublic static readonly RULE_numLiteral = 2;\n\tpublic static readonly RULE_stringExpr = 3;\n\tpublic static readonly RULE_objectRef = 4;\n\tpublic static readonly RULE_attributeRef = 5;\n\tpublic static readonly RULE_nestedObjectChain = 6;\n\tpublic static readonly RULE_namedRef = 7;\n\tpublic static readonly RULE_functionCall = 8;\n\tpublic static readonly RULE_exprList = 9;\n\tpublic static readonly RULE_array = 10;\n\tpublic static readonly RULE_arrayElementList = 11;\n\tpublic static readonly literalNames: (string | null)[] = [ null, \"'*'\", \n \"'/'\", \"'+'\", \n \"'-'\", \"'('\", \n \"')'\", \"'.'\", \n \"'@'\", \"','\", \n \"'['\", \"']'\" ];\n\tpublic static readonly symbolicNames: (string | null)[] = [ null, null, \n null, null, \n null, null, \n null, null, \n null, null, \n null, null, \n \"INT\", \"FLOAT\", \n \"SIGN\", \"PROP\", \n \"ELEM\", \"RESERVED_ATTRIBUTE_NAME\", \n \"RESERVED_RELATION_NAME\", \n \"QUOTED_STRING\", \n \"BRACKETED_STRING\", \n \"IDENTIFIER\", \n \"WS\", \"NEWLINE\" ];\n\t// tslint:disable:no-trailing-whitespace\n\tpublic static readonly ruleNames: string[] = [\n\t\t\"expr\", \"numExpr\", \"numLiteral\", \"stringExpr\", \"objectRef\", \"attributeRef\", \n\t\t\"nestedObjectChain\", \"namedRef\", \"functionCall\", \"exprList\", \"array\", \n\t\t\"arrayElementList\",\n\t];\n\tpublic get grammarFileName(): string { return \"IfcExpression.g4\"; }\n\tpublic get literalNames(): (string | null)[] { return IfcExpressionParser.literalNames; }\n\tpublic get symbolicNames(): (string | null)[] { return IfcExpressionParser.symbolicNames; }\n\tpublic get ruleNames(): string[] { return IfcExpressionParser.ruleNames; }\n\tpublic get serializedATN(): number[] { return IfcExpressionParser._serializedATN; }\n\n\tprotected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException {\n\t\treturn new FailedPredicateException(this, predicate, message);\n\t}\n\n\tconstructor(input: TokenStream) {\n\t\tsuper(input);\n\t\tthis._interp = new ParserATNSimulator(this, IfcExpressionParser._ATN, IfcExpressionParser.DecisionsToDFA, new PredictionContextCache());\n\t}\n\t// @RuleVersion(0)\n\tpublic expr(): ExprContext {\n\t\tlet localctx: ExprContext = new ExprContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 0, IfcExpressionParser.RULE_expr);\n\t\ttry {\n\t\t\tthis.state = 29;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 0, this._ctx) ) {\n\t\t\tcase 1:\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 24;\n\t\t\t\tthis.attributeRef();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 25;\n\t\t\t\tthis.functionCall();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tthis.enterOuterAlt(localctx, 3);\n\t\t\t\t{\n\t\t\t\tthis.state = 26;\n\t\t\t\tthis.numExpr(0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tthis.enterOuterAlt(localctx, 4);\n\t\t\t\t{\n\t\t\t\tthis.state = 27;\n\t\t\t\tthis.array();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\tthis.enterOuterAlt(localctx, 5);\n\t\t\t\t{\n\t\t\t\tthis.state = 28;\n\t\t\t\tthis.stringExpr(0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\n\tpublic numExpr(): NumExprContext;\n\tpublic numExpr(_p: number): NumExprContext;\n\t// @RuleVersion(0)\n\tpublic numExpr(_p?: number): NumExprContext {\n\t\tif (_p === undefined) {\n\t\t\t_p = 0;\n\t\t}\n\n\t\tlet _parentctx: ParserRuleContext = this._ctx;\n\t\tlet _parentState: number = this.state;\n\t\tlet localctx: NumExprContext = new NumExprContext(this, this._ctx, _parentState);\n\t\tlet _prevctx: NumExprContext = localctx;\n\t\tlet _startState: number = 2;\n\t\tthis.enterRecursionRule(localctx, 2, IfcExpressionParser.RULE_numExpr, _p);\n\t\tlet _la: number;\n\t\ttry {\n\t\t\tlet _alt: number;\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 39;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 3:\n\t\t\tcase 4:\n\t\t\tcase 12:\n\t\t\tcase 13:\n\t\t\t\t{\n\t\t\t\tlocalctx = new NumLitContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\n\t\t\t\tthis.state = 32;\n\t\t\t\tthis.numLiteral();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\t{\n\t\t\t\tlocalctx = new NumParensContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 33;\n\t\t\t\tthis.match(IfcExpressionParser.T__4);\n\t\t\t\tthis.state = 34;\n\t\t\t\tthis.numExpr(0);\n\t\t\t\tthis.state = 35;\n\t\t\t\tthis.match(IfcExpressionParser.T__5);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 21:\n\t\t\t\t{\n\t\t\t\tlocalctx = new NumFunCallContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 37;\n\t\t\t\tthis.functionCall();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 15:\n\t\t\tcase 16:\n\t\t\t\t{\n\t\t\t\tlocalctx = new NumAttributeRefContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 38;\n\t\t\t\tthis.attributeRef();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NoViableAltException(this);\n\t\t\t}\n\t\t\tthis._ctx.stop = this._input.LT(-1);\n\t\t\tthis.state = 49;\n\t\t\tthis._errHandler.sync(this);\n\t\t\t_alt = this._interp.adaptivePredict(this._input, 3, this._ctx);\n\t\t\twhile (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {\n\t\t\t\tif (_alt === 1) {\n\t\t\t\t\tif (this._parseListeners != null) {\n\t\t\t\t\t\tthis.triggerExitRuleEvent();\n\t\t\t\t\t}\n\t\t\t\t\t_prevctx = localctx;\n\t\t\t\t\t{\n\t\t\t\t\tthis.state = 47;\n\t\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t\tswitch ( this._interp.adaptivePredict(this._input, 2, this._ctx) ) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new NumMulDivContext(this, new NumExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_numExpr);\n\t\t\t\t\t\tthis.state = 41;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 6))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 6)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 42;\n\t\t\t\t\t\t(localctx as NumMulDivContext)._op = this._input.LT(1);\n\t\t\t\t\t\t_la = this._input.LA(1);\n\t\t\t\t\t\tif(!(_la===1 || _la===2)) {\n\t\t\t\t\t\t (localctx as NumMulDivContext)._op = this._errHandler.recoverInline(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t\t\t\t this.consume();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 43;\n\t\t\t\t\t\tthis.numExpr(7);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\t{\n\t\t\t\t\t\tlocalctx = new NumAddSubContext(this, new NumExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_numExpr);\n\t\t\t\t\t\tthis.state = 44;\n\t\t\t\t\t\tif (!(this.precpred(this._ctx, 5))) {\n\t\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 5)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 45;\n\t\t\t\t\t\t(localctx as NumAddSubContext)._op = this._input.LT(1);\n\t\t\t\t\t\t_la = this._input.LA(1);\n\t\t\t\t\t\tif(!(_la===3 || _la===4)) {\n\t\t\t\t\t\t (localctx as NumAddSubContext)._op = this._errHandler.recoverInline(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t\t\t\t this.consume();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.state = 46;\n\t\t\t\t\t\tthis.numExpr(6);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.state = 51;\n\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t_alt = this._interp.adaptivePredict(this._input, 3, this._ctx);\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.unrollRecursionContexts(_parentctx);\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic numLiteral(): NumLiteralContext {\n\t\tlet localctx: NumLiteralContext = new NumLiteralContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 4, IfcExpressionParser.RULE_numLiteral);\n\t\tlet _la: number;\n\t\ttry {\n\t\t\tthis.state = 60;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 6, 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 = 53;\n\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t_la = this._input.LA(1);\n\t\t\t\tif (_la===3 || _la===4) {\n\t\t\t\t\t{\n\t\t\t\t\tthis.state = 52;\n\t\t\t\t\t_la = this._input.LA(1);\n\t\t\t\t\tif(!(_la===3 || _la===4)) {\n\t\t\t\t\tthis._errHandler.recoverInline(this);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t\t\t this.consume();\n\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.state = 55;\n\t\t\t\tthis.match(IfcExpressionParser.INT);\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 = 57;\n\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t_la = this._input.LA(1);\n\t\t\t\tif (_la===3 || _la===4) {\n\t\t\t\t\t{\n\t\t\t\t\tthis.state = 56;\n\t\t\t\t\t_la = this._input.LA(1);\n\t\t\t\t\tif(!(_la===3 || _la===4)) {\n\t\t\t\t\tthis._errHandler.recoverInline(this);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t\t\t this.consume();\n\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.state = 59;\n\t\t\t\tthis.match(IfcExpressionParser.FLOAT);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\n\tpublic stringExpr(): StringExprContext;\n\tpublic stringExpr(_p: number): StringExprContext;\n\t// @RuleVersion(0)\n\tpublic stringExpr(_p?: number): StringExprContext {\n\t\tif (_p === undefined) {\n\t\t\t_p = 0;\n\t\t}\n\n\t\tlet _parentctx: ParserRuleContext = this._ctx;\n\t\tlet _parentState: number = this.state;\n\t\tlet localctx: StringExprContext = new StringExprContext(this, this._ctx, _parentState);\n\t\tlet _prevctx: StringExprContext = localctx;\n\t\tlet _startState: number = 6;\n\t\tthis.enterRecursionRule(localctx, 6, IfcExpressionParser.RULE_stringExpr, _p);\n\t\ttry {\n\t\t\tlet _alt: number;\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 66;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 19:\n\t\t\t\t{\n\t\t\t\tlocalctx = new StringLiteralContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\n\t\t\t\tthis.state = 63;\n\t\t\t\tthis.match(IfcExpressionParser.QUOTED_STRING);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 21:\n\t\t\t\t{\n\t\t\t\tlocalctx = new StringFunCallContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 64;\n\t\t\t\tthis.functionCall();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 15:\n\t\t\tcase 16:\n\t\t\t\t{\n\t\t\t\tlocalctx = new StringAttributeRefContext(this, localctx);\n\t\t\t\tthis._ctx = localctx;\n\t\t\t\t_prevctx = localctx;\n\t\t\t\tthis.state = 65;\n\t\t\t\tthis.attributeRef();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NoViableAltException(this);\n\t\t\t}\n\t\t\tthis._ctx.stop = this._input.LT(-1);\n\t\t\tthis.state = 73;\n\t\t\tthis._errHandler.sync(this);\n\t\t\t_alt = this._interp.adaptivePredict(this._input, 8, this._ctx);\n\t\t\twhile (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {\n\t\t\t\tif (_alt === 1) {\n\t\t\t\t\tif (this._parseListeners != null) {\n\t\t\t\t\t\tthis.triggerExitRuleEvent();\n\t\t\t\t\t}\n\t\t\t\t\t_prevctx = localctx;\n\t\t\t\t\t{\n\t\t\t\t\t{\n\t\t\t\t\tlocalctx = new StringConcatContext(this, new StringExprContext(this, _parentctx, _parentState));\n\t\t\t\t\t(localctx as StringConcatContext)._left = _prevctx;\n\t\t\t\t\tthis.pushNewRecursionContext(localctx, _startState, IfcExpressionParser.RULE_stringExpr);\n\t\t\t\t\tthis.state = 68;\n\t\t\t\t\tif (!(this.precpred(this._ctx, 3))) {\n\t\t\t\t\t\tthrow this.createFailedPredicateException(\"this.precpred(this._ctx, 3)\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.state = 69;\n\t\t\t\t\tthis.match(IfcExpressionParser.T__2);\n\t\t\t\t\tthis.state = 70;\n\t\t\t\t\t(localctx as StringConcatContext)._right = this.stringExpr(4);\n\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.state = 75;\n\t\t\t\tthis._errHandler.sync(this);\n\t\t\t\t_alt = this._interp.adaptivePredict(this._input, 8, this._ctx);\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.unrollRecursionContexts(_parentctx);\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic objectRef(): ObjectRefContext {\n\t\tlet localctx: ObjectRefContext = new ObjectRefContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 8, IfcExpressionParser.RULE_objectRef);\n\t\tlet _la: number;\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 76;\n\t\t\t_la = this._input.LA(1);\n\t\t\tif(!(_la===15 || _la===16)) {\n\t\t\tthis._errHandler.recoverInline(this);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._errHandler.reportMatch(this);\n\t\t\t this.consume();\n\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic attributeRef(): AttributeRefContext {\n\t\tlet localctx: AttributeRefContext = new AttributeRefContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 10, IfcExpressionParser.RULE_attributeRef);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 78;\n\t\t\tthis.objectRef();\n\t\t\tthis.state = 79;\n\t\t\tthis.nestedObjectChain();\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic nestedObjectChain(): NestedObjectChainContext {\n\t\tlet localctx: NestedObjectChainContext = new NestedObjectChainContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 12, IfcExpressionParser.RULE_nestedObjectChain);\n\t\ttry {\n\t\t\tthis.state = 87;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 7:\n\t\t\t\tlocalctx = new NestedObjectChainInnerContext(this, localctx);\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 81;\n\t\t\t\tthis.match(IfcExpressionParser.T__6);\n\t\t\t\tthis.state = 82;\n\t\t\t\tthis.namedRef();\n\t\t\t\tthis.state = 83;\n\t\t\t\tthis.nestedObjectChain();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 8:\n\t\t\t\tlocalctx = new NestedObjectChainEndContext(this, localctx);\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 85;\n\t\t\t\tthis.match(IfcExpressionParser.T__7);\n\t\t\t\tthis.state = 86;\n\t\t\t\t(localctx as NestedObjectChainEndContext)._name = this.match(IfcExpressionParser.RESERVED_ATTRIBUTE_NAME);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NoViableAltException(this);\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic namedRef(): NamedRefContext {\n\t\tlet localctx: NamedRefContext = new NamedRefContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 14, IfcExpressionParser.RULE_namedRef);\n\t\ttry {\n\t\t\tthis.state = 92;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch (this._input.LA(1)) {\n\t\t\tcase 18:\n\t\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t\t{\n\t\t\t\tthis.state = 89;\n\t\t\t\tlocalctx._name = this.match(IfcExpressionParser.RESERVED_RELATION_NAME);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 20:\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 90;\n\t\t\t\tlocalctx._name = this.match(IfcExpressionParser.BRACKETED_STRING);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 21:\n\t\t\t\tthis.enterOuterAlt(localctx, 3);\n\t\t\t\t{\n\t\t\t\tthis.state = 91;\n\t\t\t\tlocalctx._name = this.match(IfcExpressionParser.IDENTIFIER);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NoViableAltException(this);\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic functionCall(): FunctionCallContext {\n\t\tlet localctx: FunctionCallContext = new FunctionCallContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 16, IfcExpressionParser.RULE_functionCall);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 94;\n\t\t\tlocalctx._name = this.match(IfcExpressionParser.IDENTIFIER);\n\t\t\tthis.state = 95;\n\t\t\tthis.match(IfcExpressionParser.T__4);\n\t\t\tthis.state = 96;\n\t\t\tthis.exprList();\n\t\t\tthis.state = 97;\n\t\t\tthis.match(IfcExpressionParser.T__5);\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic exprList(): ExprListContext {\n\t\tlet localctx: ExprListContext = new ExprListContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 18, IfcExpressionParser.RULE_exprList);\n\t\ttry {\n\t\t\tthis.state = 104;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 11, 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 = 99;\n\t\t\t\tthis.expr();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 100;\n\t\t\t\tthis.expr();\n\t\t\t\tthis.state = 101;\n\t\t\t\tthis.match(IfcExpressionParser.T__8);\n\t\t\t\tthis.state = 102;\n\t\t\t\tthis.exprList();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic array(): ArrayContext {\n\t\tlet localctx: ArrayContext = new ArrayContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 20, IfcExpressionParser.RULE_array);\n\t\ttry {\n\t\t\tthis.enterOuterAlt(localctx, 1);\n\t\t\t{\n\t\t\tthis.state = 106;\n\t\t\tthis.match(IfcExpressionParser.T__9);\n\t\t\tthis.state = 107;\n\t\t\tthis.arrayElementList();\n\t\t\tthis.state = 108;\n\t\t\tthis.match(IfcExpressionParser.T__10);\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\t// @RuleVersion(0)\n\tpublic arrayElementList(): ArrayElementListContext {\n\t\tlet localctx: ArrayElementListContext = new ArrayElementListContext(this, this._ctx, this.state);\n\t\tthis.enterRule(localctx, 22, IfcExpressionParser.RULE_arrayElementList);\n\t\ttry {\n\t\t\tthis.state = 115;\n\t\t\tthis._errHandler.sync(this);\n\t\t\tswitch ( this._interp.adaptivePredict(this._input, 12, 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 = 110;\n\t\t\t\tthis.expr();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tthis.enterOuterAlt(localctx, 2);\n\t\t\t\t{\n\t\t\t\tthis.state = 111;\n\t\t\t\tthis.expr();\n\t\t\t\tthis.state = 112;\n\t\t\t\tthis.match(IfcExpressionParser.T__8);\n\t\t\t\tthis.state = 113;\n\t\t\t\tthis.arrayElementList();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcatch (re) {\n\t\t\tif (re instanceof RecognitionException) {\n\t\t\t\tlocalctx.exception = re;\n\t\t\t\tthis._errHandler.reportError(this, re);\n\t\t\t\tthis._errHandler.recover(this, re);\n\t\t\t} else {\n\t\t\t\tthrow re;\n\t\t\t}\n\t\t}\n\t\tfinally {\n\t\t\tthis.exitRule();\n\t\t}\n\t\treturn localctx;\n\t}\n\n\tpublic sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean {\n\t\tswitch (ruleIndex) {\n\t\tcase 1:\n\t\t\treturn this.numExpr_sempred(localctx as NumExprContext, predIndex);\n\t\tcase 3:\n\t\t\treturn this.stringExpr_sempred(localctx as StringExprContext, predIndex);\n\t\t}\n\t\treturn true;\n\t}\n\tprivate numExpr_sempred(localctx: NumExprContext, predIndex: number): boolean {\n\t\tswitch (predIndex) {\n\t\tcase 0:\n\t\t\treturn this.precpred(this._ctx, 6);\n\t\tcase 1:\n\t\t\treturn this.precpred(this._ctx, 5);\n\t\t}\n\t\treturn true;\n\t}\n\tprivate stringExpr_sempred(localctx: StringExprContext, predIndex: number): boolean {\n\t\tswitch (predIndex) {\n\t\tcase 2:\n\t\t\treturn this.precpred(this._ctx, 3);\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic static readonly _serializedATN: number[] = [4,1,23,118,2,0,7,0,2,\n\t1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,\n\t10,7,10,2,11,7,11,1,0,1,0,1,0,1,0,1,0,3,0,30,8,0,1,1,1,1,1,1,1,1,1,1,1,\n\t1,1,1,1,1,3,1,40,8,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,48,8,1,10,1,12,1,51,9,\n\t1,1,2,3,2,54,8,2,1,2,1,2,3,2,58,8,2,1,2,3,2,61,8,2,1,3,1,3,1,3,1,3,3,3,\n\t67,8,3,1,3,1,3,1,3,5,3,72,8,3,10,3,12,3,75,9,3,1,4,1,4,1,5,1,5,1,5,1,6,\n\t1,6,1,6,1,6,1,6,1,6,3,6,88,8,6,1,7,1,7,1,7,3,7,93,8,7,1,8,1,8,1,8,1,8,1,\n\t8,1,9,1,9,1,9,1,9,1,9,3,9,105,8,9,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,\n\t11,1,11,3,11,116,8,11,1,11,0,2,2,6,12,0,2,4,6,8,10,12,14,16,18,20,22,0,\n\t3,1,0,1,2,1,0,3,4,1,0,15,16,125,0,29,1,0,0,0,2,39,1,0,0,0,4,60,1,0,0,0,\n\t6,66,1,0,0,0,8,76,1,0,0,0,10,78,1,0,0,0,12,87,1,0,0,0,14,92,1,0,0,0,16,\n\t94,1,0,0,0,18,104,1,0,0,0,20,106,1,0,0,0,22,115,1,0,0,0,24,30,3,10,5,0,\n\t25,30,3,16,8,0,26,30,3,2,1,0,27,30,3,20,10,0,28,30,3,6,3,0,29,24,1,0,0,\n\t0,29,25,1,0,0,0,29,26,1,0,0,0,29,27,1,0,0,0,29,28,1,0,0,0,30,1,1,0,0,0,\n\t31,32,6,1,-1,0,32,40,3,4,2,0,33,34,5,5,0,0,34,35,3,2,1,0,35,36,5,6,0,0,\n\t36,40,1,0,0,0,37,40,3,16,8,0,38,40,3,10,5,0,39,31,1,0,0,0,39,33,1,0,0,0,\n\t39,37,1,0,0,0,39,38,1,0,0,0,40,49,1,0,0,0,41,42,10,6,0,0,42,43,7,0,0,0,\n\t43,48,3,2,1,7,44,45,10,5,0,0,45,46,7,1,0,0,46,48,3,2,1,6,47,41,1,0,0,0,\n\t47,44,1,0,0,0,48,51,1,0,0,0,49,47,1,0,0,0,49,50,1,0,0,0,50,3,1,0,0,0,51,\n\t49,1,0,0,0,52,54,7,1,0,0,53,52,1,0,0,0,53,54,1,0,0,0,54,55,1,0,0,0,55,61,\n\t5,12,0,0,56,58,7,1,0,0,57,56,1,0,0,0,57,58,1,0,0,0,58,59,1,0,0,0,59,61,\n\t5,13,0,0,60,53,1,0,0,0,60,57,1,0,0,0,61,5,1,0,0,0,62,63,6,3,-1,0,63,67,\n\t5,19,0,0,64,67,3,16,8,0,65,67,3,10,5,0,66,62,1,0,0,0,66,64,1,0,0,0,66,65,\n\t1,0,0,0,67,73,1,0,0,0,68,69,10,3,0,0,69,70,5,3,0,0,70,72,3,6,3,4,71,68,\n\t1,0,0,0,72,75,1,0,0,0,73,71,1,0,0,0,73,74,1,0,0,0,74,7,1,0,0,0,75,73,1,\n\t0,0,0,76,77,7,2,0,0,77,9,1,0,0,0,78,79,3,8,4,0,79,80,3,12,6,0,80,11,1,0,\n\t0,0,81,82,5,7,0,0,82,83,3,14,7,0,83,84,3,12,6,0,84,88,1,0,0,0,85,86,5,8,\n\t0,0,86,88,5,17,0,0,87,81,1,0,0,0,87,85,1,0,0,0,88,13,1,0,0,0,89,93,5,18,\n\t0,0,90,93,5,20,0,0,91,93,5,21,0,0,92,89,1,0,0,0,92,90,1,0,0,0,92,91,1,0,\n\t0,0,93,15,1,0,0,0,94,95,5,21,0,0,95,96,5,5,0,0,96,97,3,18,9,0,97,98,5,6,\n\t0,0,98,17,1,0,0,0,99,105,3,0,0,0,100,101,3,0,0,0,101,102,5,9,0,0,102,103,\n\t3,18,9,0,103,105,1,0,0,0,104,99,1,0,0,0,104,100,1,0,0,0,105,19,1,0,0,0,\n\t106,107,5,10,0,0,107,108,3,22,11,0,108,109,5,11,0,0,109,21,1,0,0,0,110,\n\t116,3,0,0,0,111,112,3,0,0,0,112,113,5,9,0,0,113,114,3,22,11,0,114,116,1,\n\t0,0,0,115,110,1,0,0,0,115,111,1,0,0,0,116,23,1,0,0,0,13,29,39,47,49,53,\n\t57,60,66,73,87,92,104,115];\n\n\tprivate static __ATN: ATN;\n\tpublic static get _ATN(): ATN {\n\t\tif (!IfcExpressionParser.__ATN) {\n\t\t\tIfcExpressionParser.__ATN = new ATNDeserializer().deserialize(IfcExpressionParser._serializedATN);\n\t\t}\n\n\t\treturn IfcExpressionParser.__ATN;\n\t}\n\n\n\tstatic DecisionsToDFA = IfcExpressionParser._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) );\n\n}\n\nexport class ExprContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic attributeRef(): AttributeRefContext {\n\t\treturn this.getTypedRuleContext(AttributeRefContext, 0) as AttributeRefContext;\n\t}\n\tpublic functionCall(): FunctionCallContext {\n\t\treturn this.getTypedRuleContext(FunctionCallContext, 0) as FunctionCallContext;\n\t}\n\tpublic numExpr(): NumExprContext {\n\t\treturn this.getTypedRuleContext(NumExprContext, 0) as NumExprContext;\n\t}\n\tpublic array(): ArrayContext {\n\t\treturn this.getTypedRuleContext(ArrayContext, 0) as ArrayContext;\n\t}\n\tpublic stringExpr(): StringExprContext {\n\t\treturn this.getTypedRuleContext(StringExprContext, 0) as StringExprContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_expr;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterExpr) {\n\t \t\tlistener.enterExpr(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitExpr) {\n\t \t\tlistener.exitExpr(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitExpr) {\n\t\t\treturn visitor.visitExpr(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class NumExprContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_numExpr;\n\t}\n\tpublic copyFrom(ctx: NumExprContext): void {\n\t\tsuper.copyFrom(ctx);\n\t}\n}\nexport class NumMulDivContext extends NumExprContext {\n\tpublic _op!: Token;\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic numExpr_list(): NumExprContext[] {\n\t\treturn this.getTypedRuleContexts(NumExprContext) as NumExprContext[];\n\t}\n\tpublic numExpr(i: number): NumExprContext {\n\t\treturn this.getTypedRuleContext(NumExprContext, i) as NumExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumMulDiv) {\n\t \t\tlistener.enterNumMulDiv(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumMulDiv) {\n\t \t\tlistener.exitNumMulDiv(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumMulDiv) {\n\t\t\treturn visitor.visitNumMulDiv(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumAddSubContext extends NumExprContext {\n\tpublic _op!: Token;\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic numExpr_list(): NumExprContext[] {\n\t\treturn this.getTypedRuleContexts(NumExprContext) as NumExprContext[];\n\t}\n\tpublic numExpr(i: number): NumExprContext {\n\t\treturn this.getTypedRuleContext(NumExprContext, i) as NumExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumAddSub) {\n\t \t\tlistener.enterNumAddSub(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumAddSub) {\n\t \t\tlistener.exitNumAddSub(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumAddSub) {\n\t\t\treturn visitor.visitNumAddSub(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumParensContext extends NumExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic numExpr(): NumExprContext {\n\t\treturn this.getTypedRuleContext(NumExprContext, 0) as NumExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumParens) {\n\t \t\tlistener.enterNumParens(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumParens) {\n\t \t\tlistener.exitNumParens(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumParens) {\n\t\t\treturn visitor.visitNumParens(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumLitContext extends NumExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic numLiteral(): NumLiteralContext {\n\t\treturn this.getTypedRuleContext(NumLiteralContext, 0) as NumLiteralContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumLit) {\n\t \t\tlistener.enterNumLit(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumLit) {\n\t \t\tlistener.exitNumLit(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumLit) {\n\t\t\treturn visitor.visitNumLit(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumFunCallContext extends NumExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic functionCall(): FunctionCallContext {\n\t\treturn this.getTypedRuleContext(FunctionCallContext, 0) as FunctionCallContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumFunCall) {\n\t \t\tlistener.enterNumFunCall(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumFunCall) {\n\t \t\tlistener.exitNumFunCall(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumFunCall) {\n\t\t\treturn visitor.visitNumFunCall(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NumAttributeRefContext extends NumExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NumExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic attributeRef(): AttributeRefContext {\n\t\treturn this.getTypedRuleContext(AttributeRefContext, 0) as AttributeRefContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumAttributeRef) {\n\t \t\tlistener.enterNumAttributeRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumAttributeRef) {\n\t \t\tlistener.exitNumAttributeRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumAttributeRef) {\n\t\t\treturn visitor.visitNumAttributeRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class NumLiteralContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic INT(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.INT, 0);\n\t}\n\tpublic FLOAT(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.FLOAT, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_numLiteral;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNumLiteral) {\n\t \t\tlistener.enterNumLiteral(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNumLiteral) {\n\t \t\tlistener.exitNumLiteral(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNumLiteral) {\n\t\t\treturn visitor.visitNumLiteral(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class StringExprContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_stringExpr;\n\t}\n\tpublic copyFrom(ctx: StringExprContext): void {\n\t\tsuper.copyFrom(ctx);\n\t}\n}\nexport class StringAttributeRefContext extends StringExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: StringExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic attributeRef(): AttributeRefContext {\n\t\treturn this.getTypedRuleContext(AttributeRefContext, 0) as AttributeRefContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterStringAttributeRef) {\n\t \t\tlistener.enterStringAttributeRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitStringAttributeRef) {\n\t \t\tlistener.exitStringAttributeRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitStringAttributeRef) {\n\t\t\treturn visitor.visitStringAttributeRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class StringLiteralContext extends StringExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: StringExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic QUOTED_STRING(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.QUOTED_STRING, 0);\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterStringLiteral) {\n\t \t\tlistener.enterStringLiteral(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitStringLiteral) {\n\t \t\tlistener.exitStringLiteral(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitStringLiteral) {\n\t\t\treturn visitor.visitStringLiteral(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class StringFunCallContext extends StringExprContext {\n\tconstructor(parser: IfcExpressionParser, ctx: StringExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic functionCall(): FunctionCallContext {\n\t\treturn this.getTypedRuleContext(FunctionCallContext, 0) as FunctionCallContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterStringFunCall) {\n\t \t\tlistener.enterStringFunCall(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitStringFunCall) {\n\t \t\tlistener.exitStringFunCall(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitStringFunCall) {\n\t\t\treturn visitor.visitStringFunCall(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class StringConcatContext extends StringExprContext {\n\tpublic _left!: StringExprContext;\n\tpublic _right!: StringExprContext;\n\tconstructor(parser: IfcExpressionParser, ctx: StringExprContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic stringExpr_list(): StringExprContext[] {\n\t\treturn this.getTypedRuleContexts(StringExprContext) as StringExprContext[];\n\t}\n\tpublic stringExpr(i: number): StringExprContext {\n\t\treturn this.getTypedRuleContext(StringExprContext, i) as StringExprContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterStringConcat) {\n\t \t\tlistener.enterStringConcat(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitStringConcat) {\n\t \t\tlistener.exitStringConcat(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitStringConcat) {\n\t\t\treturn visitor.visitStringConcat(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class ObjectRefContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic PROP(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.PROP, 0);\n\t}\n\tpublic ELEM(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.ELEM, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_objectRef;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterObjectRef) {\n\t \t\tlistener.enterObjectRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitObjectRef) {\n\t \t\tlistener.exitObjectRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitObjectRef) {\n\t\t\treturn visitor.visitObjectRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class AttributeRefContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic objectRef(): ObjectRefContext {\n\t\treturn this.getTypedRuleContext(ObjectRefContext, 0) as ObjectRefContext;\n\t}\n\tpublic nestedObjectChain(): NestedObjectChainContext {\n\t\treturn this.getTypedRuleContext(NestedObjectChainContext, 0) as NestedObjectChainContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_attributeRef;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterAttributeRef) {\n\t \t\tlistener.enterAttributeRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitAttributeRef) {\n\t \t\tlistener.exitAttributeRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitAttributeRef) {\n\t\t\treturn visitor.visitAttributeRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class NestedObjectChainContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_nestedObjectChain;\n\t}\n\tpublic copyFrom(ctx: NestedObjectChainContext): void {\n\t\tsuper.copyFrom(ctx);\n\t}\n}\nexport class NestedObjectChainEndContext extends NestedObjectChainContext {\n\tpublic _name!: Token;\n\tconstructor(parser: IfcExpressionParser, ctx: NestedObjectChainContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic RESERVED_ATTRIBUTE_NAME(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.RESERVED_ATTRIBUTE_NAME, 0);\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNestedObjectChainEnd) {\n\t \t\tlistener.enterNestedObjectChainEnd(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNestedObjectChainEnd) {\n\t \t\tlistener.exitNestedObjectChainEnd(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNestedObjectChainEnd) {\n\t\t\treturn visitor.visitNestedObjectChainEnd(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\nexport class NestedObjectChainInnerContext extends NestedObjectChainContext {\n\tconstructor(parser: IfcExpressionParser, ctx: NestedObjectChainContext) {\n\t\tsuper(parser, ctx.parentCtx, ctx.invokingState);\n\t\tsuper.copyFrom(ctx);\n\t}\n\tpublic namedRef(): NamedRefContext {\n\t\treturn this.getTypedRuleContext(NamedRefContext, 0) as NamedRefContext;\n\t}\n\tpublic nestedObjectChain(): NestedObjectChainContext {\n\t\treturn this.getTypedRuleContext(NestedObjectChainContext, 0) as NestedObjectChainContext;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNestedObjectChainInner) {\n\t \t\tlistener.enterNestedObjectChainInner(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNestedObjectChainInner) {\n\t \t\tlistener.exitNestedObjectChainInner(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNestedObjectChainInner) {\n\t\t\treturn visitor.visitNestedObjectChainInner(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class NamedRefContext extends ParserRuleContext {\n\tpublic _name!: Token;\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic RESERVED_RELATION_NAME(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.RESERVED_RELATION_NAME, 0);\n\t}\n\tpublic BRACKETED_STRING(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.BRACKETED_STRING, 0);\n\t}\n\tpublic IDENTIFIER(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.IDENTIFIER, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_namedRef;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterNamedRef) {\n\t \t\tlistener.enterNamedRef(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitNamedRef) {\n\t \t\tlistener.exitNamedRef(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitNamedRef) {\n\t\t\treturn visitor.visitNamedRef(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class FunctionCallContext extends ParserRuleContext {\n\tpublic _name!: Token;\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic exprList(): ExprListContext {\n\t\treturn this.getTypedRuleContext(ExprListContext, 0) as ExprListContext;\n\t}\n\tpublic IDENTIFIER(): TerminalNode {\n\t\treturn this.getToken(IfcExpressionParser.IDENTIFIER, 0);\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_functionCall;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterFunctionCall) {\n\t \t\tlistener.enterFunctionCall(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitFunctionCall) {\n\t \t\tlistener.exitFunctionCall(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitFunctionCall) {\n\t\t\treturn visitor.visitFunctionCall(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class ExprListContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic expr(): ExprContext {\n\t\treturn this.getTypedRuleContext(ExprContext, 0) as ExprContext;\n\t}\n\tpublic exprList(): ExprListContext {\n\t\treturn this.getTypedRuleContext(ExprListContext, 0) as ExprListContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_exprList;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterExprList) {\n\t \t\tlistener.enterExprList(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitExprList) {\n\t \t\tlistener.exitExprList(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitExprList) {\n\t\t\treturn visitor.visitExprList(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class ArrayContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic arrayElementList(): ArrayElementListContext {\n\t\treturn this.getTypedRuleContext(ArrayElementListContext, 0) as ArrayElementListContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_array;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterArray) {\n\t \t\tlistener.enterArray(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitArray) {\n\t \t\tlistener.exitArray(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitArray) {\n\t\t\treturn visitor.visitArray(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n\n\nexport class ArrayElementListContext extends ParserRuleContext {\n\tconstructor(parser?: IfcExpressionParser, parent?: ParserRuleContext, invokingState?: number) {\n\t\tsuper(parent, invokingState);\n \tthis.parser = parser;\n\t}\n\tpublic expr(): ExprContext {\n\t\treturn this.getTypedRuleContext(ExprContext, 0) as ExprContext;\n\t}\n\tpublic arrayElementList(): ArrayElementListContext {\n\t\treturn this.getTypedRuleContext(ArrayElementListContext, 0) as ArrayElementListContext;\n\t}\n public get ruleIndex(): number {\n \treturn IfcExpressionParser.RULE_arrayElementList;\n\t}\n\tpublic enterRule(listener: IfcExpressionListener): void {\n\t if(listener.enterArrayElementList) {\n\t \t\tlistener.enterArrayElementList(this);\n\t\t}\n\t}\n\tpublic exitRule(listener: IfcExpressionListener): void {\n\t if(listener.exitArrayElementList) {\n\t \t\tlistener.exitArrayElementList(this);\n\t\t}\n\t}\n\t// @Override\n\tpublic accept<Result>(visitor: IfcExpressionVisitor<Result>): Result {\n\t\tif (visitor.visitArrayElementList) {\n\t\t\treturn visitor.visitArrayElementList(this);\n\t\t} else {\n\t\t\treturn visitor.visitChildren(this);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["gen/parser/IfcExpressionVisitor.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,OAAO,EAAC,gBAAgB,EAAC,MAAM,QAAQ,CAAC;AA0BxC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,oBAA6B,SAAQ,gBAAwB;CA2IjF","file":"gen/parser/IfcExpressionVisitor.js","sourcesContent":["// Generated from IfcExpression.g4 by ANTLR 4.13.0\n\nimport {ParseTreeVisitor} from 'antlr4';\n\n\nimport { ExprContext } from \"./IfcExpressionParser\";\nimport { NumMulDivContext } from \"./IfcExpressionParser\";\nimport { NumAddSubContext } from \"./IfcExpressionParser\";\nimport { NumParensContext } from \"./IfcExpressionParser\";\nimport { NumLitContext } from \"./IfcExpressionParser\";\nimport { NumFunCallContext } from \"./IfcExpressionParser\";\nimport { NumAttributeRefContext } from \"./IfcExpressionParser\";\nimport { NumLiteralContext } from \"./IfcExpressionParser\";\nimport { StringAttributeRefContext } from \"./IfcExpressionParser\";\nimport { StringLiteralContext } from \"./IfcExpressionParser\";\nimport { StringFunCallContext } from \"./IfcExpressionParser\";\nimport { StringConcatContext } from \"./IfcExpressionParser\";\nimport { ObjectRefContext } from \"./IfcExpressionParser\";\nimport { AttributeRefContext } from \"./IfcExpressionParser\";\nimport { NestedObjectChainInnerContext } from \"./IfcExpressionParser\";\nimport { NestedObjectChainEndContext } from \"./IfcExpressionParser\";\nimport { NamedRefContext } from \"./IfcExpressionParser\";\nimport { FunctionCallContext } from \"./IfcExpressionParser\";\nimport { ExprListContext } from \"./IfcExpressionParser\";\nimport { ArrayContext } from \"./IfcExpressionParser\";\nimport { ArrayElementListContext } from \"./IfcExpressionParser\";\n\n\n/**\n * This interface defines a complete generic visitor for a parse tree produced\n * by `IfcExpressionParser`.\n *\n * @param <Result> The return type of the visit operation. Use `void` for\n * operations with no return type.\n */\nexport default class IfcExpressionVisitor<Result> extends ParseTreeVisitor<Result> {\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.expr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitExpr?: (ctx: ExprContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numMulDiv`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumMulDiv?: (ctx: NumMulDivContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numAddSub`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumAddSub?: (ctx: NumAddSubContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numParens`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumParens?: (ctx: NumParensContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numLit`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumLit?: (ctx: NumLitContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numFunCall`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumFunCall?: (ctx: NumFunCallContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `numAttributeRef`\n\t * labeled alternative in `IfcExpressionParser.numExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumAttributeRef?: (ctx: NumAttributeRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.numLiteral`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNumLiteral?: (ctx: NumLiteralContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `stringAttributeRef`\n\t * labeled alternative in `IfcExpressionParser.stringExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitStringAttributeRef?: (ctx: StringAttributeRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `stringLiteral`\n\t * labeled alternative in `IfcExpressionParser.stringExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitStringLiteral?: (ctx: StringLiteralContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `stringFunCall`\n\t * labeled alternative in `IfcExpressionParser.stringExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitStringFunCall?: (ctx: StringFunCallContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `stringConcat`\n\t * labeled alternative in `IfcExpressionParser.stringExpr`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitStringConcat?: (ctx: StringConcatContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.objectRef`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitObjectRef?: (ctx: ObjectRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.attributeRef`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitAttributeRef?: (ctx: AttributeRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `nestedObjectChainInner`\n\t * labeled alternative in `IfcExpressionParser.nestedObjectChain`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNestedObjectChainInner?: (ctx: NestedObjectChainInnerContext) => Result;\n\t/**\n\t * Visit a parse tree produced by the `nestedObjectChainEnd`\n\t * labeled alternative in `IfcExpressionParser.nestedObjectChain`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNestedObjectChainEnd?: (ctx: NestedObjectChainEndContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.namedRef`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitNamedRef?: (ctx: NamedRefContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.functionCall`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitFunctionCall?: (ctx: FunctionCallContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.exprList`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitExprList?: (ctx: ExprListContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.array`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitArray?: (ctx: ArrayContext) => Result;\n\t/**\n\t * Visit a parse tree produced by `IfcExpressionParser.arrayElementList`.\n\t * @param ctx the parse tree\n\t * @return the visitor result\n\t */\n\tvisitArrayElementList?: (ctx: ArrayElementListContext) => Result;\n}\n\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class ArrayValue {
|
|
2
|
+
constructor(value) {
|
|
3
|
+
this.arrayValue = value;
|
|
4
|
+
}
|
|
5
|
+
static of(value) {
|
|
6
|
+
return new ArrayValue(value);
|
|
7
|
+
}
|
|
8
|
+
getValue() {
|
|
9
|
+
return this.arrayValue;
|
|
10
|
+
}
|
|
11
|
+
equals(other) {
|
|
12
|
+
return (ArrayValue.isArrayValueType(other) &&
|
|
13
|
+
other.arrayValue.every((val, ind) => val.equals(this.arrayValue[ind])));
|
|
14
|
+
}
|
|
15
|
+
static isArrayValueType(arg) {
|
|
16
|
+
return Array.isArray(arg.arrayValue);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ArrayValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["value/ArrayValue.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IAGrB,YAAY,KAAwB;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAwB;QACvC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,CACL,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAClC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,GAAQ;QACrC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF","file":"value/ArrayValue.js","sourcesContent":["import { Value } from \"./Value\";\n\nexport class ArrayValue implements Value<Array<Value<any>>> {\n private readonly arrayValue: Array<Value<any>>;\n\n constructor(value: Array<Value<any>>) {\n this.arrayValue = value;\n }\n\n public static of(value: Array<Value<any>>): ArrayValue {\n return new ArrayValue(value);\n }\n\n getValue(): Array<Value<any>> {\n return this.arrayValue;\n }\n\n equals(other: Value<any>): boolean {\n return (\n ArrayValue.isArrayValueType(other) &&\n other.arrayValue.every((val, ind) => val.equals(this.arrayValue[ind]))\n );\n }\n\n public static isArrayValueType(arg: any): arg is ArrayValueType {\n return Array.isArray(arg.arrayValue);\n }\n}\n\nexport type ArrayValueType = {\n arrayValue: Array<Value<any>>;\n};\n"]}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
export class BooleanValue extends Value {
|
|
1
|
+
export class BooleanValue {
|
|
3
2
|
constructor(value) {
|
|
4
|
-
|
|
3
|
+
this.booleanValue = value;
|
|
5
4
|
}
|
|
6
5
|
static of(value) {
|
|
7
6
|
return new BooleanValue(value);
|
|
8
7
|
}
|
|
8
|
+
getValue() {
|
|
9
|
+
return this.booleanValue;
|
|
10
|
+
}
|
|
11
|
+
equals(other) {
|
|
12
|
+
return (BooleanValue.isBooleanValueType(other) &&
|
|
13
|
+
other.booleanValue === this.booleanValue);
|
|
14
|
+
}
|
|
15
|
+
static isBooleanValueType(arg) {
|
|
16
|
+
return typeof arg.booleanValue === "boolean";
|
|
17
|
+
}
|
|
9
18
|
}
|
|
10
19
|
//# sourceMappingURL=BooleanValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["value/BooleanValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["value/BooleanValue.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IAGvB,YAAY,KAAc;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAc;QAC7B,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,CACL,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACtC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CACzC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAQ;QAChC,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC;IAC/C,CAAC;CACF","file":"value/BooleanValue.js","sourcesContent":["import { Value } from \"./Value.js\";\n\nexport class BooleanValue implements Value<boolean> {\n private readonly booleanValue: boolean;\n\n constructor(value: boolean) {\n this.booleanValue = value;\n }\n\n public static of(value: boolean): BooleanValue {\n return new BooleanValue(value);\n }\n\n getValue(): boolean {\n return this.booleanValue;\n }\n\n equals(other: Value<any>): boolean {\n return (\n BooleanValue.isBooleanValueType(other) &&\n other.booleanValue === this.booleanValue\n );\n }\n\n static isBooleanValueType(arg: any): arg is BooleanValueType {\n return typeof arg.booleanValue === \"boolean\";\n }\n}\n\nexport type BooleanValueType = {\n booleanValue: boolean;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["value/LiteralValue.ts"],"names":[],"mappings":"","file":"value/LiteralValue.js","sourcesContent":["import { NumericValue } from \"./NumericValue\";\nimport { StringValue } from \"./StringValue\";\nimport { BooleanValue } from \"./BooleanValue\";\nimport { LogicalValue } from \"./LogicalValue\";\nimport { ReferenceValue } from \"./ReferenceValue\";\n\nexport type LiteralValue =\n | NumericValue\n | StringValue\n | BooleanValue\n | LogicalValue\n | ReferenceValue;\n"]}
|
|
1
|
+
{"version":3,"sources":["value/LiteralValue.ts"],"names":[],"mappings":"","file":"value/LiteralValue.js","sourcesContent":["import { NumericValue } from \"./NumericValue.js\";\nimport { StringValue } from \"./StringValue.js\";\nimport { BooleanValue } from \"./BooleanValue.js\";\nimport { LogicalValue } from \"./LogicalValue.js\";\nimport { ReferenceValue } from \"./ReferenceValue.js\";\nimport { ArrayValue } from \"./ArrayValue\";\n\nexport type LiteralValue =\n | NumericValue\n | StringValue\n | BooleanValue\n | LogicalValue\n | ReferenceValue\n | ArrayValue;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["value/LiteralValueAnyArity.ts"],"names":[],"mappings":"","file":"value/LiteralValueAnyArity.js","sourcesContent":["import { LiteralValue } from \"./LiteralValue\";\n\nexport type LiteralValueAnyArity
|
|
1
|
+
{"version":3,"sources":["value/LiteralValueAnyArity.ts"],"names":[],"mappings":"","file":"value/LiteralValueAnyArity.js","sourcesContent":["import { LiteralValue } from \"./LiteralValue.js\";\n\nexport type LiteralValueAnyArity = LiteralValue;\n"]}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
export class LogicalValue extends Value {
|
|
1
|
+
export class LogicalValue {
|
|
3
2
|
constructor(value) {
|
|
4
|
-
|
|
3
|
+
this.logicalValue = value;
|
|
5
4
|
}
|
|
6
5
|
static of(value) {
|
|
7
6
|
return new LogicalValue(value);
|
|
8
7
|
}
|
|
8
|
+
getValue() {
|
|
9
|
+
return this.logicalValue;
|
|
10
|
+
}
|
|
11
|
+
equals(other) {
|
|
12
|
+
return (LogicalValue.isLogicalValueType(other) &&
|
|
13
|
+
other.logicalValue === this.logicalValue);
|
|
14
|
+
}
|
|
15
|
+
static isLogicalValueType(arg) {
|
|
16
|
+
return ((typeof arg.logicalValue !== "undefined" &&
|
|
17
|
+
typeof arg.logicalValue === "boolean") ||
|
|
18
|
+
arg.logicalValue === "UNKNOWN");
|
|
19
|
+
}
|
|
9
20
|
}
|
|
10
21
|
//# sourceMappingURL=LogicalValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["value/LogicalValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["value/LogicalValue.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IAGvB,YAAY,KAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAA0B;QACzC,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,CACL,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACtC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CACzC,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,GAAQ;QACvC,OAAO,CACL,CAAC,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW;YACtC,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC;YACxC,GAAG,CAAC,YAAY,KAAK,SAAS,CAC/B,CAAC;IACJ,CAAC;CACF","file":"value/LogicalValue.js","sourcesContent":["import { Value } from \"./Value.js\";\n\nexport class LogicalValue implements Value<boolean | \"UNKNOWN\"> {\n private readonly logicalValue: boolean | \"UNKNOWN\";\n\n constructor(value: boolean | \"UNKNOWN\") {\n this.logicalValue = value;\n }\n\n public static of(value: boolean | \"UNKNOWN\"): LogicalValue {\n return new LogicalValue(value);\n }\n\n getValue(): boolean | \"UNKNOWN\" {\n return this.logicalValue;\n }\n\n equals(other: Value<any>): boolean {\n return (\n LogicalValue.isLogicalValueType(other) &&\n other.logicalValue === this.logicalValue\n );\n }\n\n public static isLogicalValueType(arg: any): arg is LogicalValueType {\n return (\n (typeof arg.logicalValue !== \"undefined\" &&\n typeof arg.logicalValue === \"boolean\") ||\n arg.logicalValue === \"UNKNOWN\"\n );\n }\n}\n\nexport type LogicalValueType = {\n logicalValue: boolean | \"UNKNOWN\";\n};\n"]}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export class NumericValue extends Value {
|
|
1
|
+
import { Decimal } from "decimal.js";
|
|
2
|
+
export class NumericValue {
|
|
4
3
|
constructor(value) {
|
|
5
|
-
|
|
4
|
+
if (Decimal.isDecimal(value)) {
|
|
5
|
+
this.numericValue = value;
|
|
6
|
+
}
|
|
7
|
+
this.numericValue = new Decimal(value);
|
|
6
8
|
}
|
|
7
9
|
static of(value) {
|
|
8
10
|
return new NumericValue(value);
|
|
9
11
|
}
|
|
12
|
+
getValue() {
|
|
13
|
+
return this.numericValue;
|
|
14
|
+
}
|
|
15
|
+
static isNumericValueType(arg) {
|
|
16
|
+
return Decimal.isDecimal(arg.numericValue);
|
|
17
|
+
}
|
|
18
|
+
equals(other) {
|
|
19
|
+
return (NumericValue.isNumericValueType(other) &&
|
|
20
|
+
this.numericValue.eq(other.numericValue));
|
|
21
|
+
}
|
|
10
22
|
}
|
|
11
23
|
//# sourceMappingURL=NumericValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["value/NumericValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"sources":["value/NumericValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,MAAM,OAAO,YAAY;IAGvB,YAAY,KAAgC;QAC1C,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAgC;QAC/C,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAQ;QAChC,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,CACL,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CACzC,CAAC;IACJ,CAAC;CACF","file":"value/NumericValue.js","sourcesContent":["import { Decimal } from \"decimal.js\";\nimport { Value } from \"./Value.js\";\n\nexport class NumericValue implements Value<Decimal> {\n private readonly numericValue: Decimal;\n\n constructor(value: Decimal | string | number) {\n if (Decimal.isDecimal(value)) {\n this.numericValue = value;\n }\n this.numericValue = new Decimal(value);\n }\n\n public static of(value: Decimal | string | number): NumericValue {\n return new NumericValue(value);\n }\n\n getValue(): Decimal {\n return this.numericValue;\n }\n\n static isNumericValueType(arg: any): arg is NumericValueType {\n return Decimal.isDecimal(arg.numericValue);\n }\n\n equals(other: Value<any>): boolean {\n return (\n NumericValue.isNumericValueType(other) &&\n this.numericValue.eq(other.numericValue)\n );\n }\n}\n\nexport type NumericValueType = {\n numericValue: Decimal;\n};\n"]}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
export class ReferenceValue extends Value {
|
|
1
|
+
export class ReferenceValue {
|
|
3
2
|
constructor(value) {
|
|
4
|
-
|
|
3
|
+
this.referenceValue = value;
|
|
5
4
|
}
|
|
6
5
|
static of(value) {
|
|
7
6
|
return new ReferenceValue(value);
|
|
8
7
|
}
|
|
8
|
+
getValue() {
|
|
9
|
+
return this.referenceValue;
|
|
10
|
+
}
|
|
11
|
+
equals(other) {
|
|
12
|
+
return (ReferenceValue.isReferenceValueType(other) &&
|
|
13
|
+
other.referenceValue === this.referenceValue);
|
|
14
|
+
}
|
|
15
|
+
static isReferenceValueType(arg) {
|
|
16
|
+
return typeof arg.referenceValue === "string";
|
|
17
|
+
}
|
|
9
18
|
}
|
|
10
19
|
//# sourceMappingURL=ReferenceValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["value/ReferenceValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["value/ReferenceValue.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IAGzB,YAAY,KAAa;QACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAa;QAC5B,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,CACL,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC;YAC1C,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,CAC7C,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,GAAQ;QAClC,OAAO,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC;IAChD,CAAC;CACF","file":"value/ReferenceValue.js","sourcesContent":["import { Value } from \"./Value.js\";\n\nexport class ReferenceValue implements Value<string> {\n private readonly referenceValue: string;\n\n constructor(value: string) {\n this.referenceValue = value;\n }\n\n public static of(value: string): ReferenceValue {\n return new ReferenceValue(value);\n }\n\n getValue(): string {\n return this.referenceValue;\n }\n\n equals(other: Value<any>): boolean {\n return (\n ReferenceValue.isReferenceValueType(other) &&\n other.referenceValue === this.referenceValue\n );\n }\n\n static isReferenceValueType(arg: any): arg is ReferenceValueType {\n return typeof arg.referenceValue === \"string\";\n }\n}\n\nexport type ReferenceValueType = {\n referenceValue: string;\n};\n"]}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
export class StringValue extends Value {
|
|
1
|
+
export class StringValue {
|
|
3
2
|
constructor(value) {
|
|
4
|
-
|
|
3
|
+
this.stringValue = value;
|
|
5
4
|
}
|
|
6
5
|
static of(value) {
|
|
7
6
|
return new StringValue(value);
|
|
8
7
|
}
|
|
8
|
+
getValue() {
|
|
9
|
+
return this.stringValue;
|
|
10
|
+
}
|
|
11
|
+
equals(other) {
|
|
12
|
+
return (StringValue.isStringValueType(other) &&
|
|
13
|
+
other.stringValue === this.stringValue);
|
|
14
|
+
}
|
|
15
|
+
static isStringValueType(arg) {
|
|
16
|
+
return typeof arg.stringValue === "string";
|
|
17
|
+
}
|
|
9
18
|
}
|
|
10
19
|
//# sourceMappingURL=StringValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["value/StringValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["value/StringValue.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAGtB,YAAY,KAAa;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAa;QAC5B,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,OAAO,CACL,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC;YACpC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CACvC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAQ;QAC/B,OAAO,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC;IAC7C,CAAC;CACF","file":"value/StringValue.js","sourcesContent":["import { Value } from \"./Value.js\";\n\nexport class StringValue implements Value<string> {\n private readonly stringValue: string;\n\n constructor(value: string) {\n this.stringValue = value;\n }\n\n public static of(value: string): StringValue {\n return new StringValue(value);\n }\n\n getValue(): string {\n return this.stringValue;\n }\n\n equals(other: Value<any>): boolean {\n return (\n StringValue.isStringValueType(other) &&\n other.stringValue === this.stringValue\n );\n }\n\n static isStringValueType(arg: any): arg is StringValueType {\n return typeof arg.stringValue === \"string\";\n }\n}\n\nexport type StringValueType = {\n stringValue: string;\n};\n"]}
|
package/dist/mjs/value/Value.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["value/Value.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["value/Value.ts"],"names":[],"mappings":"","file":"value/Value.js","sourcesContent":["import { PrimitiveValueType } from \"./PrimitiveValueType.js\";\n\nexport interface Value<\n T extends\n | PrimitiveValueType\n | Array<Value<PrimitiveValueType | Array<Value<PrimitiveValueType>>>>\n> {\n getValue(): T;\n equals(other: Value<any>): boolean;\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Value } from "./Value";
|
|
2
|
+
export declare class ArrayValue implements Value<Array<Value<any>>> {
|
|
3
|
+
private readonly arrayValue;
|
|
4
|
+
constructor(value: Array<Value<any>>);
|
|
5
|
+
static of(value: Array<Value<any>>): ArrayValue;
|
|
6
|
+
getValue(): Array<Value<any>>;
|
|
7
|
+
equals(other: Value<any>): boolean;
|
|
8
|
+
static isArrayValueType(arg: any): arg is ArrayValueType;
|
|
9
|
+
}
|
|
10
|
+
export type ArrayValueType = {
|
|
11
|
+
arrayValue: Array<Value<any>>;
|
|
12
|
+
};
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { Value } from "./Value";
|
|
2
|
-
export declare class BooleanValue
|
|
1
|
+
import { Value } from "./Value.js";
|
|
2
|
+
export declare class BooleanValue implements Value<boolean> {
|
|
3
|
+
private readonly booleanValue;
|
|
3
4
|
constructor(value: boolean);
|
|
4
5
|
static of(value: boolean): BooleanValue;
|
|
6
|
+
getValue(): boolean;
|
|
7
|
+
equals(other: Value<any>): boolean;
|
|
8
|
+
static isBooleanValueType(arg: any): arg is BooleanValueType;
|
|
5
9
|
}
|
|
10
|
+
export type BooleanValueType = {
|
|
11
|
+
booleanValue: boolean;
|
|
12
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { NumericValue } from "./NumericValue";
|
|
2
|
-
import { StringValue } from "./StringValue";
|
|
3
|
-
import { BooleanValue } from "./BooleanValue";
|
|
4
|
-
import { LogicalValue } from "./LogicalValue";
|
|
5
|
-
import { ReferenceValue } from "./ReferenceValue";
|
|
6
|
-
|
|
1
|
+
import { NumericValue } from "./NumericValue.js";
|
|
2
|
+
import { StringValue } from "./StringValue.js";
|
|
3
|
+
import { BooleanValue } from "./BooleanValue.js";
|
|
4
|
+
import { LogicalValue } from "./LogicalValue.js";
|
|
5
|
+
import { ReferenceValue } from "./ReferenceValue.js";
|
|
6
|
+
import { ArrayValue } from "./ArrayValue";
|
|
7
|
+
export type LiteralValue = NumericValue | StringValue | BooleanValue | LogicalValue | ReferenceValue | ArrayValue;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { LiteralValue } from "./LiteralValue";
|
|
2
|
-
export type LiteralValueAnyArity = LiteralValue
|
|
1
|
+
import { LiteralValue } from "./LiteralValue.js";
|
|
2
|
+
export type LiteralValueAnyArity = LiteralValue;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { Value } from "./Value";
|
|
2
|
-
export declare class LogicalValue
|
|
1
|
+
import { Value } from "./Value.js";
|
|
2
|
+
export declare class LogicalValue implements Value<boolean | "UNKNOWN"> {
|
|
3
|
+
private readonly logicalValue;
|
|
3
4
|
constructor(value: boolean | "UNKNOWN");
|
|
4
5
|
static of(value: boolean | "UNKNOWN"): LogicalValue;
|
|
6
|
+
getValue(): boolean | "UNKNOWN";
|
|
7
|
+
equals(other: Value<any>): boolean;
|
|
8
|
+
static isLogicalValueType(arg: any): arg is LogicalValueType;
|
|
5
9
|
}
|
|
10
|
+
export type LogicalValueType = {
|
|
11
|
+
logicalValue: boolean | "UNKNOWN";
|
|
12
|
+
};
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
export declare class NumericValue
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { Decimal } from "decimal.js";
|
|
2
|
+
import { Value } from "./Value.js";
|
|
3
|
+
export declare class NumericValue implements Value<Decimal> {
|
|
4
|
+
private readonly numericValue;
|
|
5
|
+
constructor(value: Decimal | string | number);
|
|
6
|
+
static of(value: Decimal | string | number): NumericValue;
|
|
7
|
+
getValue(): Decimal;
|
|
8
|
+
static isNumericValueType(arg: any): arg is NumericValueType;
|
|
9
|
+
equals(other: Value<any>): boolean;
|
|
6
10
|
}
|
|
11
|
+
export type NumericValueType = {
|
|
12
|
+
numericValue: Decimal;
|
|
13
|
+
};
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { Value } from "./Value";
|
|
2
|
-
export declare class ReferenceValue
|
|
1
|
+
import { Value } from "./Value.js";
|
|
2
|
+
export declare class ReferenceValue implements Value<string> {
|
|
3
|
+
private readonly referenceValue;
|
|
3
4
|
constructor(value: string);
|
|
4
5
|
static of(value: string): ReferenceValue;
|
|
6
|
+
getValue(): string;
|
|
7
|
+
equals(other: Value<any>): boolean;
|
|
8
|
+
static isReferenceValueType(arg: any): arg is ReferenceValueType;
|
|
5
9
|
}
|
|
10
|
+
export type ReferenceValueType = {
|
|
11
|
+
referenceValue: string;
|
|
12
|
+
};
|