ifc-expressions 0.2.1 → 0.2.3
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 +3 -3
- package/dist/IfcExpression.d.ts +25 -23
- package/dist/IfcExpressionErrorListener.d.ts +1 -1
- package/dist/IfcExpressionUtils.d.ts +2 -0
- package/dist/cjs/ExprVisitor.js +126 -0
- package/dist/cjs/ExprVisitor.js.map +1 -0
- package/dist/cjs/IfcExpression.js +43 -40
- package/dist/cjs/IfcExpression.js.map +1 -0
- package/dist/cjs/IfcExpressionErrorListener.js +23 -0
- package/dist/cjs/IfcExpressionErrorListener.js.map +1 -0
- package/dist/cjs/IfcExpressionUtils.js +12 -0
- package/dist/cjs/IfcExpressionUtils.js.map +1 -0
- package/dist/cjs/SyntaxErrorException.js +24 -0
- package/dist/cjs/SyntaxErrorException.js.map +1 -0
- package/dist/cjs/context/IfcElementAccessor.js +34 -0
- package/dist/cjs/context/IfcElementAccessor.js.map +1 -0
- package/dist/cjs/context/IfcExpressionContext.js +3 -0
- package/dist/cjs/context/IfcExpressionContext.js.map +1 -0
- package/dist/cjs/context/IfcPropertyAccessor.js +28 -0
- package/dist/cjs/context/IfcPropertyAccessor.js.map +1 -0
- package/dist/cjs/context/IfcPropertySetAccessor.js +17 -0
- package/dist/cjs/context/IfcPropertySetAccessor.js.map +1 -0
- package/dist/cjs/context/IfcRootObjectAccessor.js +19 -0
- package/dist/cjs/context/IfcRootObjectAccessor.js.map +1 -0
- package/dist/cjs/context/IfcTypeObjectAccessor.js +22 -0
- package/dist/cjs/context/IfcTypeObjectAccessor.js.map +1 -0
- package/dist/cjs/context/NamedObjectAccessor.js +26 -0
- package/dist/cjs/context/NamedObjectAccessor.js.map +1 -0
- package/dist/cjs/context/ObjectAccessor.js +3 -0
- package/dist/cjs/context/ObjectAccessor.js.map +1 -0
- package/dist/cjs/expression/ArrayExpr.js +3 -0
- package/dist/cjs/expression/ArrayExpr.js.map +1 -0
- package/dist/cjs/expression/Expr.js +3 -0
- package/dist/cjs/expression/Expr.js.map +1 -0
- package/dist/cjs/expression/Expr0.js +8 -0
- package/dist/cjs/expression/Expr0.js.map +1 -0
- package/dist/cjs/expression/Expr1.js +10 -0
- package/dist/cjs/expression/Expr1.js.map +1 -0
- package/dist/cjs/expression/Expr2.js +11 -0
- package/dist/cjs/expression/Expr2.js.map +1 -0
- package/dist/cjs/expression/IfcExpressionEvaluationException.js +10 -0
- package/dist/cjs/expression/IfcExpressionEvaluationException.js.map +1 -0
- package/dist/cjs/expression/numeric/DivideExpr.js +18 -0
- package/dist/cjs/expression/numeric/DivideExpr.js.map +1 -0
- package/dist/cjs/expression/numeric/MinusExpr.js +18 -0
- package/dist/cjs/expression/numeric/MinusExpr.js.map +1 -0
- package/dist/cjs/expression/numeric/MultiplyByExpr.js +18 -0
- package/dist/cjs/expression/numeric/MultiplyByExpr.js.map +1 -0
- package/dist/cjs/expression/numeric/MultiplyExpr.js +18 -0
- package/dist/cjs/expression/numeric/MultiplyExpr.js.map +1 -0
- package/dist/cjs/expression/numeric/NumParenthesisExpr.js +14 -0
- package/dist/cjs/expression/numeric/NumParenthesisExpr.js.map +1 -0
- package/dist/cjs/expression/numeric/NumericLiteralExpr.js +14 -0
- package/dist/cjs/expression/numeric/NumericLiteralExpr.js.map +1 -0
- package/dist/cjs/expression/numeric/PlusExpr.js +18 -0
- package/dist/cjs/expression/numeric/PlusExpr.js.map +1 -0
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js +16 -0
- package/dist/cjs/expression/reference/AttributeReferenceExpr.js.map +1 -0
- package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js +14 -0
- package/dist/cjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -0
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js +14 -0
- package/dist/cjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -0
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js +15 -0
- package/dist/cjs/expression/reference/NestedObjectChainExpr.js.map +1 -0
- package/dist/cjs/expression/reference/ObjectReferenceExpr.js +3 -0
- package/dist/cjs/expression/reference/ObjectReferenceExpr.js.map +1 -0
- package/dist/cjs/expression/reference/PropObjectReferenceExpr.js +14 -0
- package/dist/cjs/expression/reference/PropObjectReferenceExpr.js.map +1 -0
- package/dist/cjs/expression/string/StringConcatExpr.js +15 -0
- package/dist/cjs/expression/string/StringConcatExpr.js.map +1 -0
- package/dist/cjs/expression/string/StringLiteralExpr.js +14 -0
- package/dist/cjs/expression/string/StringLiteralExpr.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionLexer.js +140 -0
- package/dist/cjs/gen/parser/IfcExpressionLexer.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionListener.js +12 -0
- package/dist/cjs/gen/parser/IfcExpressionListener.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionParser.js +1514 -0
- package/dist/cjs/gen/parser/IfcExpressionParser.js.map +1 -0
- package/dist/cjs/gen/parser/IfcExpressionVisitor.js +15 -0
- package/dist/cjs/gen/parser/IfcExpressionVisitor.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/value/BooleanValue.js +14 -0
- package/dist/cjs/value/BooleanValue.js.map +1 -0
- package/dist/cjs/value/LiteralValue.js +3 -0
- package/dist/cjs/value/LiteralValue.js.map +1 -0
- package/dist/cjs/value/LiteralValueAnyArity.js +3 -0
- package/dist/cjs/value/LiteralValueAnyArity.js.map +1 -0
- package/dist/cjs/value/LogicalValue.js +14 -0
- package/dist/cjs/value/LogicalValue.js.map +1 -0
- package/dist/cjs/value/NumericValue.js +18 -0
- package/dist/cjs/value/NumericValue.js.map +1 -0
- package/dist/cjs/value/PrimitiveValueType.js +3 -0
- package/dist/cjs/value/PrimitiveValueType.js.map +1 -0
- package/dist/cjs/value/ReferenceValue.js +14 -0
- package/dist/cjs/value/ReferenceValue.js.map +1 -0
- package/dist/cjs/value/StringValue.js +14 -0
- package/dist/cjs/value/StringValue.js.map +1 -0
- package/dist/cjs/value/Value.js +13 -0
- package/dist/cjs/value/Value.js.map +1 -0
- package/dist/context/IfcElementAccessor.d.ts +18 -0
- package/dist/context/IfcExpressionContext.d.ts +6 -0
- package/dist/context/IfcPropertyAccessor.d.ts +12 -0
- package/dist/context/IfcPropertySetAccessor.d.ts +11 -0
- package/dist/context/IfcRootObjectAccessor.d.ts +7 -0
- package/dist/context/IfcTypeObjectAccessor.d.ts +13 -0
- package/dist/context/NamedObjectAccessor.d.ts +10 -0
- package/dist/context/ObjectAccessor.d.ts +16 -0
- package/dist/expression/ArrayExpr.d.ts +3 -0
- package/dist/expression/Expr.d.ts +4 -0
- package/dist/expression/Expr0.d.ts +6 -0
- package/dist/expression/Expr1.d.ts +7 -0
- package/dist/expression/Expr2.d.ts +8 -0
- package/dist/expression/IfcExpressionEvaluationException.d.ts +3 -0
- package/dist/expression/numeric/DivideExpr.d.ts +8 -0
- package/dist/expression/numeric/MinusExpr.d.ts +8 -0
- package/dist/expression/numeric/MultiplyByExpr.d.ts +8 -0
- package/dist/expression/numeric/MultiplyExpr.d.ts +8 -0
- package/dist/expression/numeric/NumParenthesisExpr.d.ts +8 -0
- package/dist/expression/numeric/NumericLiteralExpr.d.ts +7 -0
- package/dist/expression/numeric/PlusExpr.d.ts +8 -0
- package/dist/expression/reference/AttributeReferenceExpr.d.ts +9 -0
- package/dist/expression/reference/ElemObjectReferenceExpr.d.ts +8 -0
- package/dist/expression/reference/NestedObjectChainEndExpr.d.ts +8 -0
- package/dist/expression/reference/NestedObjectChainExpr.d.ts +9 -0
- package/dist/expression/reference/ObjectReferenceExpr.d.ts +4 -0
- package/dist/expression/reference/PropObjectReferenceExpr.d.ts +8 -0
- package/dist/expression/string/StringConcatExpr.d.ts +8 -0
- package/dist/expression/string/StringLiteralExpr.d.ts +7 -0
- package/dist/gen/parser/IfcExpressionLexer.d.ts +43 -0
- package/dist/gen/parser/IfcExpressionListener.d.ts +262 -0
- package/dist/gen/parser/IfcExpressionParser.d.ts +265 -0
- package/dist/gen/parser/IfcExpressionVisitor.d.ts +169 -0
- package/dist/mjs/ExprVisitor.js +119 -0
- package/dist/mjs/ExprVisitor.js.map +1 -0
- package/dist/mjs/IfcExpression.js +48 -0
- package/dist/mjs/IfcExpression.js.map +1 -0
- package/dist/mjs/IfcExpressionErrorListener.js +19 -0
- package/dist/mjs/IfcExpressionErrorListener.js.map +1 -0
- package/dist/mjs/IfcExpressionUtils.js +7 -0
- package/dist/mjs/IfcExpressionUtils.js.map +1 -0
- package/dist/mjs/SyntaxErrorException.js +20 -0
- package/dist/mjs/SyntaxErrorException.js.map +1 -0
- package/dist/mjs/context/IfcElementAccessor.js +30 -0
- package/dist/mjs/context/IfcElementAccessor.js.map +1 -0
- package/dist/mjs/context/IfcExpressionContext.js +2 -0
- package/dist/mjs/context/IfcExpressionContext.js.map +1 -0
- package/dist/mjs/context/IfcPropertyAccessor.js +24 -0
- package/dist/mjs/context/IfcPropertyAccessor.js.map +1 -0
- package/dist/mjs/context/IfcPropertySetAccessor.js +13 -0
- package/dist/mjs/context/IfcPropertySetAccessor.js.map +1 -0
- package/dist/mjs/context/IfcRootObjectAccessor.js +15 -0
- package/dist/mjs/context/IfcRootObjectAccessor.js.map +1 -0
- package/dist/mjs/context/IfcTypeObjectAccessor.js +18 -0
- package/dist/mjs/context/IfcTypeObjectAccessor.js.map +1 -0
- package/dist/mjs/context/NamedObjectAccessor.js +22 -0
- package/dist/mjs/context/NamedObjectAccessor.js.map +1 -0
- package/dist/mjs/context/ObjectAccessor.js +2 -0
- package/dist/mjs/context/ObjectAccessor.js.map +1 -0
- package/dist/mjs/expression/ArrayExpr.js +2 -0
- package/dist/mjs/expression/ArrayExpr.js.map +1 -0
- package/dist/mjs/expression/Expr.js +2 -0
- package/dist/mjs/expression/Expr.js.map +1 -0
- package/dist/mjs/expression/Expr0.js +4 -0
- package/dist/mjs/expression/Expr0.js.map +1 -0
- package/dist/mjs/expression/Expr1.js +6 -0
- package/dist/mjs/expression/Expr1.js.map +1 -0
- package/dist/mjs/expression/Expr2.js +7 -0
- package/dist/mjs/expression/Expr2.js.map +1 -0
- package/dist/mjs/expression/IfcExpressionEvaluationException.js +6 -0
- package/dist/mjs/expression/IfcExpressionEvaluationException.js.map +1 -0
- package/dist/mjs/expression/numeric/DivideExpr.js +14 -0
- package/dist/mjs/expression/numeric/DivideExpr.js.map +1 -0
- package/dist/mjs/expression/numeric/MinusExpr.js +14 -0
- package/dist/mjs/expression/numeric/MinusExpr.js.map +1 -0
- package/dist/mjs/expression/numeric/MultiplyByExpr.js +14 -0
- package/dist/mjs/expression/numeric/MultiplyByExpr.js.map +1 -0
- package/dist/mjs/expression/numeric/MultiplyExpr.js +14 -0
- package/dist/mjs/expression/numeric/MultiplyExpr.js.map +1 -0
- package/dist/mjs/expression/numeric/NumParenthesisExpr.js +10 -0
- package/dist/mjs/expression/numeric/NumParenthesisExpr.js.map +1 -0
- package/dist/mjs/expression/numeric/NumericLiteralExpr.js +10 -0
- package/dist/mjs/expression/numeric/NumericLiteralExpr.js.map +1 -0
- package/dist/mjs/expression/numeric/PlusExpr.js +14 -0
- package/dist/mjs/expression/numeric/PlusExpr.js.map +1 -0
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js +12 -0
- package/dist/mjs/expression/reference/AttributeReferenceExpr.js.map +1 -0
- package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js +10 -0
- package/dist/mjs/expression/reference/ElemObjectReferenceExpr.js.map +1 -0
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js +10 -0
- package/dist/mjs/expression/reference/NestedObjectChainEndExpr.js.map +1 -0
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js +11 -0
- package/dist/mjs/expression/reference/NestedObjectChainExpr.js.map +1 -0
- package/dist/mjs/expression/reference/ObjectReferenceExpr.js +2 -0
- package/dist/mjs/expression/reference/ObjectReferenceExpr.js.map +1 -0
- package/dist/mjs/expression/reference/PropObjectReferenceExpr.js +10 -0
- package/dist/mjs/expression/reference/PropObjectReferenceExpr.js.map +1 -0
- package/dist/mjs/expression/string/StringConcatExpr.js +11 -0
- package/dist/mjs/expression/string/StringConcatExpr.js.map +1 -0
- package/dist/mjs/expression/string/StringLiteralExpr.js +10 -0
- package/dist/mjs/expression/string/StringLiteralExpr.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionLexer.js +138 -0
- package/dist/mjs/gen/parser/IfcExpressionLexer.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionListener.js +9 -0
- package/dist/mjs/gen/parser/IfcExpressionListener.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionParser.js +1487 -0
- package/dist/mjs/gen/parser/IfcExpressionParser.js.map +1 -0
- package/dist/mjs/gen/parser/IfcExpressionVisitor.js +12 -0
- package/dist/mjs/gen/parser/IfcExpressionVisitor.js.map +1 -0
- package/dist/mjs/package.json +1 -0
- package/dist/mjs/value/BooleanValue.js +10 -0
- package/dist/mjs/value/BooleanValue.js.map +1 -0
- package/dist/mjs/value/LiteralValue.js +2 -0
- package/dist/mjs/value/LiteralValue.js.map +1 -0
- package/dist/mjs/value/LiteralValueAnyArity.js +2 -0
- package/dist/mjs/value/LiteralValueAnyArity.js.map +1 -0
- package/dist/mjs/value/LogicalValue.js +10 -0
- package/dist/mjs/value/LogicalValue.js.map +1 -0
- package/dist/mjs/value/NumericValue.js +11 -0
- package/dist/mjs/value/NumericValue.js.map +1 -0
- package/dist/mjs/value/PrimitiveValueType.js +2 -0
- package/dist/mjs/value/PrimitiveValueType.js.map +1 -0
- package/dist/mjs/value/ReferenceValue.js +10 -0
- package/dist/mjs/value/ReferenceValue.js.map +1 -0
- package/dist/mjs/value/StringValue.js +10 -0
- package/dist/mjs/value/StringValue.js.map +1 -0
- package/dist/mjs/value/Value.js +9 -0
- package/dist/mjs/value/Value.js.map +1 -0
- package/dist/value/BooleanValue.d.ts +5 -0
- package/dist/value/LiteralValue.d.ts +6 -0
- package/dist/value/LiteralValueAnyArity.d.ts +2 -0
- package/dist/value/LogicalValue.d.ts +5 -0
- package/dist/value/NumericValue.d.ts +6 -0
- package/dist/value/PrimitiveValueType.d.ts +2 -0
- package/dist/value/ReferenceValue.d.ts +5 -0
- package/dist/value/StringValue.d.ts +5 -0
- package/dist/value/Value.d.ts +6 -0
- package/package.json +3 -2
- package/dist/utils.d.ts +0 -2
package/dist/ExprVisitor.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import IfcExpressionVisitor from "
|
|
2
|
-
import { AttributeRefContext, ExprContext, NestedObjectChainEndContext, NestedObjectChainInnerContext, NumAddSubContext, NumAttributeRefContext, NumLitContext, NumLiteralContext, NumMulDivContext, NumParensContext, ObjectRefContext, StringAttributeRefContext, StringConcatContext, StringLiteralContext } from "
|
|
3
|
-
import { Expr } from "./expression/Expr";
|
|
1
|
+
import IfcExpressionVisitor from "./gen/parser/IfcExpressionVisitor.js";
|
|
2
|
+
import { AttributeRefContext, ExprContext, NestedObjectChainEndContext, NestedObjectChainInnerContext, NumAddSubContext, NumAttributeRefContext, NumLitContext, NumLiteralContext, NumMulDivContext, NumParensContext, ObjectRefContext, StringAttributeRefContext, StringConcatContext, StringLiteralContext } from "./gen/parser/IfcExpressionParser.js";
|
|
3
|
+
import { Expr } from "./expression/Expr.js";
|
|
4
4
|
export declare class ExprVisitor extends IfcExpressionVisitor<Expr<any>> {
|
|
5
5
|
constructor();
|
|
6
6
|
visitAttributeRef: (ctx: AttributeRefContext) => Expr<any>;
|
package/dist/IfcExpression.d.ts
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import { ErrorListener, Token } from "antlr4";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import IfcExpressionVisitor from "
|
|
22
|
-
import
|
|
23
|
-
import
|
|
24
|
-
|
|
2
|
+
import { ExprVisitor } from "./ExprVisitor.js";
|
|
3
|
+
import { IfcExpressionErrorListener } from "./IfcExpressionErrorListener.js";
|
|
4
|
+
import { isPresent, isNullish } from "./IfcExpressionUtils.js";
|
|
5
|
+
import { IfcExpressionContext } from "./context/IfcExpressionContext.js";
|
|
6
|
+
import { Expr } from "./expression/Expr.js";
|
|
7
|
+
import { IfcElementAccessor } from "./context/IfcElementAccessor.js";
|
|
8
|
+
import { Value } from "./value/Value.js";
|
|
9
|
+
import { StringValue } from "./value/StringValue.js";
|
|
10
|
+
import { NumericValue } from "./value/NumericValue.js";
|
|
11
|
+
import { BooleanValue } from "./value/BooleanValue.js";
|
|
12
|
+
import { LogicalValue } from "./value/LogicalValue.js";
|
|
13
|
+
import { LiteralValue } from "./value/LiteralValue.js";
|
|
14
|
+
import { ReferenceValue } from "./value/ReferenceValue.js";
|
|
15
|
+
import { IfcPropertySetAccessor } from "./context/IfcPropertySetAccessor.js";
|
|
16
|
+
import { IfcPropertyAccessor } from "./context/IfcPropertyAccessor.js";
|
|
17
|
+
import { IfcRootObjectAccessor } from "./context/IfcRootObjectAccessor.js";
|
|
18
|
+
import { IfcTypeObjectAccessor } from "./context/IfcTypeObjectAccessor.js";
|
|
19
|
+
import { NamedObjectAccessor } from "./context/NamedObjectAccessor.js";
|
|
20
|
+
import { ExprContext } from "./gen/parser/IfcExpressionParser.js";
|
|
21
|
+
import IfcExpressionVisitor from "./gen/parser/IfcExpressionVisitor.js";
|
|
22
|
+
import { ObjectAccessor } from "./context/ObjectAccessor.js";
|
|
23
|
+
import { IfcExpressionEvaluationException } from "./expression/IfcExpressionEvaluationException.js";
|
|
24
|
+
import type { LiteralValueAnyArity } from "./value/LiteralValueAnyArity.js";
|
|
25
|
+
import type { PrimitiveValueType } from "./value/PrimitiveValueType.js";
|
|
26
|
+
export { IfcElementAccessor, IfcExpressionContext, Value, StringValue, BooleanValue, LogicalValue, NumericValue, LiteralValue, ReferenceValue, IfcPropertySetAccessor, IfcPropertyAccessor, IfcRootObjectAccessor, IfcTypeObjectAccessor, NamedObjectAccessor, ObjectAccessor, Expr, ExprVisitor, IfcExpressionEvaluationException, IfcExpressionErrorListener, IfcExpressionVisitor, isPresent, isNullish, };
|
|
25
27
|
export type { PrimitiveValueType, LiteralValueAnyArity };
|
|
26
28
|
export declare class IfcExpression {
|
|
27
29
|
static parse(input: string, errorListener?: ErrorListener<Token>): ExprContext;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ErrorListener, RecognitionException, Recognizer, Token } from "antlr4";
|
|
2
|
-
import { SyntaxErrorException } from "./SyntaxErrorException";
|
|
2
|
+
import { SyntaxErrorException } from "./SyntaxErrorException.js";
|
|
3
3
|
export declare class IfcExpressionErrorListener extends ErrorListener<Token> {
|
|
4
4
|
private exception;
|
|
5
5
|
syntaxError(recognizer: Recognizer<Token>, offendingSymbol: Token, line: number, column: number, msg: string, e: RecognitionException | undefined): void;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ExprVisitor = void 0;
|
|
7
|
+
const IfcExpressionVisitor_js_1 = __importDefault(require("./gen/parser/IfcExpressionVisitor.js"));
|
|
8
|
+
const NumericLiteralExpr_js_1 = require("./expression/numeric/NumericLiteralExpr.js");
|
|
9
|
+
const IfcExpressionUtils_js_1 = require("./IfcExpressionUtils.js");
|
|
10
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
11
|
+
const PlusExpr_js_1 = require("./expression/numeric/PlusExpr.js");
|
|
12
|
+
const MinusExpr_js_1 = require("./expression/numeric/MinusExpr.js");
|
|
13
|
+
const MultiplyExpr_js_1 = require("./expression/numeric/MultiplyExpr.js");
|
|
14
|
+
const DivideExpr_js_1 = require("./expression/numeric/DivideExpr.js");
|
|
15
|
+
const NumParenthesisExpr_js_1 = require("./expression/numeric/NumParenthesisExpr.js");
|
|
16
|
+
const AttributeReferenceExpr_js_1 = require("./expression/reference/AttributeReferenceExpr.js");
|
|
17
|
+
const PropObjectReferenceExpr_js_1 = require("./expression/reference/PropObjectReferenceExpr.js");
|
|
18
|
+
const ElemObjectReferenceExpr_js_1 = require("./expression/reference/ElemObjectReferenceExpr.js");
|
|
19
|
+
const NestedObjectChainExpr_js_1 = require("./expression/reference/NestedObjectChainExpr.js");
|
|
20
|
+
const NestedObjectChainEndExpr_js_1 = require("./expression/reference/NestedObjectChainEndExpr.js");
|
|
21
|
+
const NumericValue_js_1 = require("./value/NumericValue.js");
|
|
22
|
+
const StringValue_js_1 = require("./value/StringValue.js");
|
|
23
|
+
const StringLiteralExpr_js_1 = require("./expression/string/StringLiteralExpr.js");
|
|
24
|
+
const StringConcatExpr_js_1 = require("./expression/string/StringConcatExpr.js");
|
|
25
|
+
class ExprVisitor extends IfcExpressionVisitor_js_1.default {
|
|
26
|
+
constructor() {
|
|
27
|
+
super();
|
|
28
|
+
/*================================================
|
|
29
|
+
* AttributeRef
|
|
30
|
+
*==============================================*/
|
|
31
|
+
this.visitAttributeRef = (ctx) => {
|
|
32
|
+
const objectRefExpr = this.visit(ctx.objectRef());
|
|
33
|
+
const nestedObjectChainExpr = this.visit(ctx.nestedObjectChain());
|
|
34
|
+
return new AttributeReferenceExpr_js_1.AttributeReferenceExpr(objectRefExpr, nestedObjectChainExpr);
|
|
35
|
+
};
|
|
36
|
+
this.visitObjectRef = (ctx) => {
|
|
37
|
+
if ((0, IfcExpressionUtils_js_1.isPresent)(ctx.PROP())) {
|
|
38
|
+
return new PropObjectReferenceExpr_js_1.PropObjectReferenceExpr();
|
|
39
|
+
}
|
|
40
|
+
else if ((0, IfcExpressionUtils_js_1.isPresent)(ctx.ELEM())) {
|
|
41
|
+
return new ElemObjectReferenceExpr_js_1.ElemObjectReferenceExpr();
|
|
42
|
+
}
|
|
43
|
+
this.failNode(ctx);
|
|
44
|
+
};
|
|
45
|
+
this.visitNestedObjectChainInner = (ctx) => {
|
|
46
|
+
let name = ctx.namedRef().getChild(0).getText();
|
|
47
|
+
name = this.stripBrackets(name);
|
|
48
|
+
return new NestedObjectChainExpr_js_1.NestedObjectChainExpr(name, this.visit(ctx.nestedObjectChain()));
|
|
49
|
+
};
|
|
50
|
+
this.visitNestedObjectChainEnd = (ctx) => {
|
|
51
|
+
let name = ctx.RESERVED_ATTRIBUTE_NAME().getText();
|
|
52
|
+
return new NestedObjectChainEndExpr_js_1.NestedObjectChainEndExpr(name);
|
|
53
|
+
};
|
|
54
|
+
/*================================================
|
|
55
|
+
* StringExpr
|
|
56
|
+
*===============================================*/
|
|
57
|
+
this.visitStringLiteral = (ctx) => {
|
|
58
|
+
const quotedString = ctx.QUOTED_STRING().getText();
|
|
59
|
+
const text = quotedString.substring(1, quotedString.length - 1);
|
|
60
|
+
return new StringLiteralExpr_js_1.StringLiteralExpr(new StringValue_js_1.StringValue(text));
|
|
61
|
+
};
|
|
62
|
+
this.visitStringAttributeRef = (ctx) => {
|
|
63
|
+
return this.visit(ctx.getChild(0));
|
|
64
|
+
};
|
|
65
|
+
this.visitStringConcat = (ctx) => {
|
|
66
|
+
return new StringConcatExpr_js_1.StringConcatExpr(this.visit(ctx._left), this.visit(ctx._right));
|
|
67
|
+
};
|
|
68
|
+
/*================================================
|
|
69
|
+
* NumExpr
|
|
70
|
+
*===============================================*/
|
|
71
|
+
this.visitNumAttributeRef = (ctx) => {
|
|
72
|
+
return this.visit(ctx.getChild(0));
|
|
73
|
+
};
|
|
74
|
+
this.visitNumLiteral = (ctx) => {
|
|
75
|
+
let val = ctx.INT();
|
|
76
|
+
if ((0, IfcExpressionUtils_js_1.isPresent)(val)) {
|
|
77
|
+
return new NumericLiteralExpr_js_1.NumericLiteralExpr(new NumericValue_js_1.NumericValue(new decimal_js_1.default(val.symbol.text)));
|
|
78
|
+
}
|
|
79
|
+
val = ctx.FLOAT();
|
|
80
|
+
if ((0, IfcExpressionUtils_js_1.isPresent)(val)) {
|
|
81
|
+
return new NumericLiteralExpr_js_1.NumericLiteralExpr(new NumericValue_js_1.NumericValue(new decimal_js_1.default(val.symbol.text)));
|
|
82
|
+
}
|
|
83
|
+
this.failNode(ctx);
|
|
84
|
+
};
|
|
85
|
+
this.visitNumAddSub = (ctx) => {
|
|
86
|
+
switch (ctx._op.text) {
|
|
87
|
+
case "+":
|
|
88
|
+
return new PlusExpr_js_1.PlusExpr(this.visit(ctx.getChild(0)), this.visit(ctx.getChild(2)));
|
|
89
|
+
case "-":
|
|
90
|
+
return new MinusExpr_js_1.MinusExpr(this.visit(ctx.getChild(0)), this.visit(ctx.getChild(2)));
|
|
91
|
+
default:
|
|
92
|
+
this.failNode(ctx);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
this.visitNumMulDiv = (ctx) => {
|
|
96
|
+
switch (ctx._op.text) {
|
|
97
|
+
case "*":
|
|
98
|
+
return new MultiplyExpr_js_1.MultiplyExpr(this.visit(ctx.getChild(0)), this.visit(ctx.getChild(2)));
|
|
99
|
+
case "/":
|
|
100
|
+
return new DivideExpr_js_1.DivideExpr(this.visit(ctx.getChild(0)), this.visit(ctx.getChild(2)));
|
|
101
|
+
default:
|
|
102
|
+
this.failNode(ctx);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
this.visitNumParens = (ctx) => {
|
|
106
|
+
return new NumParenthesisExpr_js_1.NumParenthesisExpr(this.visit(ctx.getChild(1)));
|
|
107
|
+
};
|
|
108
|
+
this.visitExpr = (ctx) => {
|
|
109
|
+
return this.visit(ctx.getChild(0));
|
|
110
|
+
};
|
|
111
|
+
this.visitNumLit = (ctx) => {
|
|
112
|
+
return this.visit(ctx.getChild(0));
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
stripBrackets(name) {
|
|
116
|
+
if (name.startsWith("{")) {
|
|
117
|
+
return name.substring(1, name.length - 1);
|
|
118
|
+
}
|
|
119
|
+
return name;
|
|
120
|
+
}
|
|
121
|
+
failNode(ctx) {
|
|
122
|
+
throw new Error(`Cannot parse (sub)expression ${ctx.getText()}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.ExprVisitor = ExprVisitor;
|
|
126
|
+
//# sourceMappingURL=ExprVisitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ExprVisitor.ts"],"names":[],"mappings":"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","file":"ExprVisitor.js","sourcesContent":["import IfcExpressionVisitor from \"./gen/parser/IfcExpressionVisitor.js\";\nimport { NumericLiteralExpr } from \"./expression/numeric/NumericLiteralExpr.js\";\nimport {\n AttributeRefContext,\n ExprContext,\n NestedObjectChainEndContext,\n NestedObjectChainInnerContext,\n NumAddSubContext,\n NumAttributeRefContext,\n NumLitContext,\n NumLiteralContext,\n NumMulDivContext,\n NumParensContext,\n ObjectRefContext,\n StringAttributeRefContext,\n StringConcatContext,\n StringLiteralContext,\n} from \"./gen/parser/IfcExpressionParser.js\";\nimport { Expr } from \"./expression/Expr.js\";\nimport { isPresent } from \"./IfcExpressionUtils.js\";\nimport Decimal from \"decimal.js\";\nimport { PlusExpr } from \"./expression/numeric/PlusExpr.js\";\nimport { MinusExpr } from \"./expression/numeric/MinusExpr.js\";\nimport { ParserRuleContext } from \"antlr4\";\nimport { MultiplyExpr } from \"./expression/numeric/MultiplyExpr.js\";\nimport { DivideExpr } from \"./expression/numeric/DivideExpr.js\";\nimport { NumParenthesisExpr } from \"./expression/numeric/NumParenthesisExpr.js\";\nimport { AttributeReferenceExpr } from \"./expression/reference/AttributeReferenceExpr.js\";\nimport { PropObjectReferenceExpr } from \"./expression/reference/PropObjectReferenceExpr.js\";\nimport { ElemObjectReferenceExpr } from \"./expression/reference/ElemObjectReferenceExpr.js\";\nimport { NestedObjectChainExpr } from \"./expression/reference/NestedObjectChainExpr.js\";\nimport { NestedObjectChainEndExpr } from \"./expression/reference/NestedObjectChainEndExpr.js\";\nimport { NumericValue } from \"./value/NumericValue.js\";\nimport { StringValue } from \"./value/StringValue.js\";\nimport { StringLiteralExpr } from \"./expression/string/StringLiteralExpr.js\";\nimport { StringConcatExpr } from \"./expression/string/StringConcatExpr.js\";\n\nexport class ExprVisitor extends IfcExpressionVisitor<Expr<any>> {\n constructor() {\n super();\n }\n\n /*================================================\n * AttributeRef\n *==============================================*/\n\n visitAttributeRef: (ctx: AttributeRefContext) => Expr<any> = (ctx) => {\n const objectRefExpr = this.visit(ctx.objectRef());\n const nestedObjectChainExpr = this.visit(ctx.nestedObjectChain());\n return new AttributeReferenceExpr(\n objectRefExpr,\n nestedObjectChainExpr as NestedObjectChainExpr\n );\n };\n\n visitObjectRef: (ctx: ObjectRefContext) => Expr<any> = (ctx) => {\n if (isPresent(ctx.PROP())) {\n return new PropObjectReferenceExpr();\n } else if (isPresent(ctx.ELEM())) {\n return new ElemObjectReferenceExpr();\n }\n this.failNode(ctx);\n };\n\n visitNestedObjectChainInner: (\n ctx: NestedObjectChainInnerContext\n ) => Expr<any> = (ctx) => {\n let name = ctx.namedRef().getChild(0).getText();\n name = this.stripBrackets(name);\n return new NestedObjectChainExpr(\n name,\n this.visit(ctx.nestedObjectChain()) as NestedObjectChainExpr\n );\n };\n\n visitNestedObjectChainEnd: (ctx: NestedObjectChainEndContext) => Expr<any> = (\n ctx\n ) => {\n let name = ctx.RESERVED_ATTRIBUTE_NAME().getText();\n return new NestedObjectChainEndExpr(name);\n };\n\n private stripBrackets(name: string) {\n if (name.startsWith(\"{\")) {\n return name.substring(1, name.length - 1);\n }\n return name;\n }\n\n /*================================================\n * StringExpr\n *===============================================*/\n\n visitStringLiteral: (ctx: StringLiteralContext) => Expr<any> = (ctx) => {\n const quotedString = ctx.QUOTED_STRING().getText();\n const text = quotedString.substring(1, quotedString.length - 1);\n return new StringLiteralExpr(new StringValue(text));\n };\n\n visitStringAttributeRef: (ctx: StringAttributeRefContext) => Expr<any> = (\n ctx\n ) => {\n return this.visit(ctx.getChild(0));\n };\n\n visitStringConcat: (ctx: StringConcatContext) => Expr<any> = (ctx) => {\n return new StringConcatExpr(this.visit(ctx._left), this.visit(ctx._right));\n };\n\n /*================================================\n * NumExpr\n *===============================================*/\n\n visitNumAttributeRef: (ctx: NumAttributeRefContext) => Expr<any> = (ctx) => {\n return this.visit(ctx.getChild(0));\n };\n\n visitNumLiteral: (ctx: NumLiteralContext) => Expr<any> = (ctx) => {\n let val = ctx.INT();\n if (isPresent(val)) {\n return new NumericLiteralExpr(\n new NumericValue(new Decimal(val.symbol.text))\n );\n }\n val = ctx.FLOAT();\n if (isPresent(val)) {\n return new NumericLiteralExpr(\n new NumericValue(new Decimal(val.symbol.text))\n );\n }\n this.failNode(ctx);\n };\n\n visitNumAddSub: (ctx: NumAddSubContext) => Expr<any> = (ctx) => {\n switch (ctx._op.text) {\n case \"+\":\n return new PlusExpr(\n this.visit(ctx.getChild(0)),\n this.visit(ctx.getChild(2))\n );\n case \"-\":\n return new MinusExpr(\n this.visit(ctx.getChild(0)),\n this.visit(ctx.getChild(2))\n );\n default:\n this.failNode(ctx);\n }\n };\n\n visitNumMulDiv: (ctx: NumMulDivContext) => Expr<any> = (ctx) => {\n switch (ctx._op.text) {\n case \"*\":\n return new MultiplyExpr(\n this.visit(ctx.getChild(0)),\n this.visit(ctx.getChild(2))\n );\n case \"/\":\n return new DivideExpr(\n this.visit(ctx.getChild(0)),\n this.visit(ctx.getChild(2))\n );\n default:\n this.failNode(ctx);\n }\n };\n\n visitNumParens: (ctx: NumParensContext) => Expr<any> = (ctx) => {\n return new NumParenthesisExpr(this.visit(ctx.getChild(1)));\n };\n\n visitExpr: (ctx: ExprContext) => Expr<any> = (ctx) => {\n return this.visit(ctx.getChild(0));\n };\n\n visitNumLit: (ctx: NumLitContext) => Expr<any> = (ctx) => {\n return this.visit(ctx.getChild(0));\n };\n\n private failNode(ctx: ParserRuleContext) {\n throw new Error(`Cannot parse (sub)expression ${ctx.getText()}`);\n }\n}\n"]}
|
|
@@ -3,56 +3,59 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.IfcExpression = exports.IfcExpressionVisitor = exports.IfcExpressionErrorListener = exports.IfcExpressionEvaluationException = exports.NamedObjectAccessor = exports.IfcTypeObjectAccessor = exports.IfcRootObjectAccessor = exports.IfcPropertyAccessor = exports.IfcPropertySetAccessor = exports.ReferenceValue = exports.NumericValue = exports.LogicalValue = exports.BooleanValue = exports.StringValue = exports.Value = exports.IfcElementAccessor = void 0;
|
|
6
|
+
exports.IfcExpression = exports.isNullish = exports.isPresent = exports.IfcExpressionVisitor = exports.IfcExpressionErrorListener = exports.IfcExpressionEvaluationException = exports.ExprVisitor = exports.NamedObjectAccessor = exports.IfcTypeObjectAccessor = exports.IfcRootObjectAccessor = exports.IfcPropertyAccessor = exports.IfcPropertySetAccessor = exports.ReferenceValue = exports.NumericValue = exports.LogicalValue = exports.BooleanValue = exports.StringValue = exports.Value = exports.IfcElementAccessor = void 0;
|
|
7
7
|
const antlr4_1 = require("antlr4");
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
exports.IfcExpressionVisitor =
|
|
8
|
+
const ExprVisitor_js_1 = require("./ExprVisitor.js");
|
|
9
|
+
Object.defineProperty(exports, "ExprVisitor", { enumerable: true, get: function () { return ExprVisitor_js_1.ExprVisitor; } });
|
|
10
|
+
const IfcExpressionErrorListener_js_1 = require("./IfcExpressionErrorListener.js");
|
|
11
|
+
Object.defineProperty(exports, "IfcExpressionErrorListener", { enumerable: true, get: function () { return IfcExpressionErrorListener_js_1.IfcExpressionErrorListener; } });
|
|
12
|
+
const IfcExpressionUtils_js_1 = require("./IfcExpressionUtils.js");
|
|
13
|
+
Object.defineProperty(exports, "isPresent", { enumerable: true, get: function () { return IfcExpressionUtils_js_1.isPresent; } });
|
|
14
|
+
Object.defineProperty(exports, "isNullish", { enumerable: true, get: function () { return IfcExpressionUtils_js_1.isNullish; } });
|
|
15
|
+
const IfcElementAccessor_js_1 = require("./context/IfcElementAccessor.js");
|
|
16
|
+
Object.defineProperty(exports, "IfcElementAccessor", { enumerable: true, get: function () { return IfcElementAccessor_js_1.IfcElementAccessor; } });
|
|
17
|
+
const Value_js_1 = require("./value/Value.js");
|
|
18
|
+
Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return Value_js_1.Value; } });
|
|
19
|
+
const StringValue_js_1 = require("./value/StringValue.js");
|
|
20
|
+
Object.defineProperty(exports, "StringValue", { enumerable: true, get: function () { return StringValue_js_1.StringValue; } });
|
|
21
|
+
const NumericValue_js_1 = require("./value/NumericValue.js");
|
|
22
|
+
Object.defineProperty(exports, "NumericValue", { enumerable: true, get: function () { return NumericValue_js_1.NumericValue; } });
|
|
23
|
+
const BooleanValue_js_1 = require("./value/BooleanValue.js");
|
|
24
|
+
Object.defineProperty(exports, "BooleanValue", { enumerable: true, get: function () { return BooleanValue_js_1.BooleanValue; } });
|
|
25
|
+
const LogicalValue_js_1 = require("./value/LogicalValue.js");
|
|
26
|
+
Object.defineProperty(exports, "LogicalValue", { enumerable: true, get: function () { return LogicalValue_js_1.LogicalValue; } });
|
|
27
|
+
const ReferenceValue_js_1 = require("./value/ReferenceValue.js");
|
|
28
|
+
Object.defineProperty(exports, "ReferenceValue", { enumerable: true, get: function () { return ReferenceValue_js_1.ReferenceValue; } });
|
|
29
|
+
const IfcPropertySetAccessor_js_1 = require("./context/IfcPropertySetAccessor.js");
|
|
30
|
+
Object.defineProperty(exports, "IfcPropertySetAccessor", { enumerable: true, get: function () { return IfcPropertySetAccessor_js_1.IfcPropertySetAccessor; } });
|
|
31
|
+
const IfcPropertyAccessor_js_1 = require("./context/IfcPropertyAccessor.js");
|
|
32
|
+
Object.defineProperty(exports, "IfcPropertyAccessor", { enumerable: true, get: function () { return IfcPropertyAccessor_js_1.IfcPropertyAccessor; } });
|
|
33
|
+
const IfcRootObjectAccessor_js_1 = require("./context/IfcRootObjectAccessor.js");
|
|
34
|
+
Object.defineProperty(exports, "IfcRootObjectAccessor", { enumerable: true, get: function () { return IfcRootObjectAccessor_js_1.IfcRootObjectAccessor; } });
|
|
35
|
+
const IfcTypeObjectAccessor_js_1 = require("./context/IfcTypeObjectAccessor.js");
|
|
36
|
+
Object.defineProperty(exports, "IfcTypeObjectAccessor", { enumerable: true, get: function () { return IfcTypeObjectAccessor_js_1.IfcTypeObjectAccessor; } });
|
|
37
|
+
const NamedObjectAccessor_js_1 = require("./context/NamedObjectAccessor.js");
|
|
38
|
+
Object.defineProperty(exports, "NamedObjectAccessor", { enumerable: true, get: function () { return NamedObjectAccessor_js_1.NamedObjectAccessor; } });
|
|
39
|
+
const IfcExpressionParser_js_1 = __importDefault(require("./gen/parser/IfcExpressionParser.js"));
|
|
40
|
+
const IfcExpressionVisitor_js_1 = __importDefault(require("./gen/parser/IfcExpressionVisitor.js"));
|
|
41
|
+
exports.IfcExpressionVisitor = IfcExpressionVisitor_js_1.default;
|
|
42
|
+
const IfcExpressionLexer_js_1 = __importDefault(require("./gen/parser/IfcExpressionLexer.js"));
|
|
43
|
+
const IfcExpressionEvaluationException_js_1 = require("./expression/IfcExpressionEvaluationException.js");
|
|
44
|
+
Object.defineProperty(exports, "IfcExpressionEvaluationException", { enumerable: true, get: function () { return IfcExpressionEvaluationException_js_1.IfcExpressionEvaluationException; } });
|
|
42
45
|
class IfcExpression {
|
|
43
46
|
static parse(input, errorListener) {
|
|
44
47
|
const chars = new antlr4_1.CharStream(input); // replace this with a FileStream as required
|
|
45
|
-
const lexer = new
|
|
48
|
+
const lexer = new IfcExpressionLexer_js_1.default(chars);
|
|
46
49
|
const tokens = new antlr4_1.CommonTokenStream(lexer);
|
|
47
|
-
const parser = new
|
|
48
|
-
if ((0,
|
|
50
|
+
const parser = new IfcExpressionParser_js_1.default(tokens);
|
|
51
|
+
if ((0, IfcExpressionUtils_js_1.isPresent)(errorListener)) {
|
|
49
52
|
parser.removeErrorListeners();
|
|
50
53
|
parser.addErrorListener(errorListener);
|
|
51
54
|
}
|
|
52
55
|
return parser.expr();
|
|
53
56
|
}
|
|
54
57
|
static evaluate(expression, context) {
|
|
55
|
-
const errorListener = new
|
|
58
|
+
const errorListener = new IfcExpressionErrorListener_js_1.IfcExpressionErrorListener();
|
|
56
59
|
const tree = IfcExpression.parse(expression, errorListener);
|
|
57
60
|
if (errorListener.isErrorOccurred()) {
|
|
58
61
|
throw errorListener.getException();
|
|
@@ -61,7 +64,7 @@ class IfcExpression {
|
|
|
61
64
|
return parsedExpression.evaluate(context);
|
|
62
65
|
}
|
|
63
66
|
static extractExprTree(tree) {
|
|
64
|
-
const visitor = new
|
|
67
|
+
const visitor = new ExprVisitor_js_1.ExprVisitor();
|
|
65
68
|
return visitor.visit(tree);
|
|
66
69
|
}
|
|
67
70
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/IfcExpression.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA6E;AAC7E,qDAA+C;AA4C7C,4FA5CO,4BAAW,OA4CP;AA3Cb,mFAA6E;AA6C3E,2GA7CO,0DAA0B,OA6CP;AA5C5B,mEAA+D;AA8C7D,0FA9CO,iCAAS,OA8CP;AACT,0FA/CkB,iCAAS,OA+ClB;AA3CX,2EAAqE;AAsBnE,mGAtBO,0CAAkB,OAsBP;AArBpB,+CAAyC;AAuBvC,sFAvBO,gBAAK,OAuBP;AAtBP,2DAAqD;AAuBnD,4FAvBO,4BAAW,OAuBP;AAtBb,6DAAuD;AAyBrD,6FAzBO,8BAAY,OAyBP;AAxBd,6DAAuD;AAsBrD,6FAtBO,8BAAY,OAsBP;AArBd,6DAAuD;AAsBrD,6FAtBO,8BAAY,OAsBP;AApBd,iEAA2D;AAuBzD,+FAvBO,kCAAc,OAuBP;AAtBhB,mFAA6E;AAuB3E,uGAvBO,kDAAsB,OAuBP;AAtBxB,6EAAuE;AAuBrE,oGAvBO,4CAAmB,OAuBP;AAtBrB,iFAA2E;AAuBzE,sGAvBO,gDAAqB,OAuBP;AAtBvB,iFAA2E;AAuBzE,sGAvBO,gDAAqB,OAuBP;AAtBvB,6EAAuE;AAuBrE,oGAvBO,4CAAmB,OAuBP;AArBrB,iGAAsE;AACtE,mGAAwE;AA0BtE,+BA1BK,iCAAoB,CA0BL;AAzBtB,+FAAoE;AAEpE,0GAAoG;AAqBlG,iHArBO,sEAAgC,OAqBP;AASlC,MAAa,aAAa;IACjB,MAAM,CAAC,KAAK,CACjB,KAAa,EACb,aAAoC;QAEpC,MAAM,KAAK,GAAG,IAAI,mBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,6CAA6C;QAClF,MAAM,KAAK,GAAG,IAAI,+BAAkB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,0BAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,gCAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,IAAA,iCAAS,EAAC,aAAa,CAAC,EAAE;YAC5B,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC9B,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,QAAQ,CACpB,UAAkB,EAClB,OAA6B;QAE7B,MAAM,aAAa,GAAG,IAAI,0DAA0B,EAAE,CAAC;QACvD,MAAM,IAAI,GAAgB,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACzE,IAAI,aAAa,CAAC,eAAe,EAAE,EAAE;YACnC,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;SACpC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,IAAiB;QAC9C,MAAM,OAAO,GAAG,IAAI,4BAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF;AAjCD,sCAiCC","file":"IfcExpression.js","sourcesContent":["import { CharStream, CommonTokenStream, ErrorListener, Token } from \"antlr4\";\nimport { ExprVisitor } from \"./ExprVisitor.js\";\nimport { IfcExpressionErrorListener } from \"./IfcExpressionErrorListener.js\";\nimport { isPresent, isNullish } from \"./IfcExpressionUtils.js\";\nimport { IfcExpressionContext } from \"./context/IfcExpressionContext.js\";\nimport { Expr } from \"./expression/Expr.js\";\n\nimport { IfcElementAccessor } from \"./context/IfcElementAccessor.js\";\nimport { Value } from \"./value/Value.js\";\nimport { StringValue } from \"./value/StringValue.js\";\nimport { NumericValue } from \"./value/NumericValue.js\";\nimport { BooleanValue } from \"./value/BooleanValue.js\";\nimport { LogicalValue } from \"./value/LogicalValue.js\";\nimport { LiteralValue } from \"./value/LiteralValue.js\";\nimport { ReferenceValue } from \"./value/ReferenceValue.js\";\nimport { IfcPropertySetAccessor } from \"./context/IfcPropertySetAccessor.js\";\nimport { IfcPropertyAccessor } from \"./context/IfcPropertyAccessor.js\";\nimport { IfcRootObjectAccessor } from \"./context/IfcRootObjectAccessor.js\";\nimport { IfcTypeObjectAccessor } from \"./context/IfcTypeObjectAccessor.js\";\nimport { NamedObjectAccessor } from \"./context/NamedObjectAccessor.js\";\nimport { ExprContext } from \"./gen/parser/IfcExpressionParser.js\";\nimport IfcExpressionParser from \"./gen/parser/IfcExpressionParser.js\";\nimport IfcExpressionVisitor from \"./gen/parser/IfcExpressionVisitor.js\";\nimport IfcExpressionLexer from \"./gen/parser/IfcExpressionLexer.js\";\nimport { ObjectAccessor } from \"./context/ObjectAccessor.js\";\nimport { IfcExpressionEvaluationException } from \"./expression/IfcExpressionEvaluationException.js\";\nimport type { LiteralValueAnyArity } from \"./value/LiteralValueAnyArity.js\";\nimport type { PrimitiveValueType } from \"./value/PrimitiveValueType.js\";\nexport {\n IfcElementAccessor,\n IfcExpressionContext,\n Value,\n StringValue,\n BooleanValue,\n LogicalValue,\n NumericValue,\n LiteralValue,\n ReferenceValue,\n IfcPropertySetAccessor,\n IfcPropertyAccessor,\n IfcRootObjectAccessor,\n IfcTypeObjectAccessor,\n NamedObjectAccessor,\n ObjectAccessor,\n Expr,\n ExprVisitor,\n IfcExpressionEvaluationException,\n IfcExpressionErrorListener,\n IfcExpressionVisitor,\n isPresent,\n isNullish,\n};\n\nexport type { PrimitiveValueType, LiteralValueAnyArity };\n\nexport class IfcExpression {\n public static parse(\n input: string,\n errorListener?: ErrorListener<Token>\n ): ExprContext {\n const chars = new CharStream(input); // replace this with a FileStream as required\n const lexer = new IfcExpressionLexer(chars);\n const tokens = new CommonTokenStream(lexer);\n const parser = new IfcExpressionParser(tokens);\n if (isPresent(errorListener)) {\n parser.removeErrorListeners();\n parser.addErrorListener(errorListener);\n }\n return parser.expr();\n }\n\n public static evaluate(\n expression: string,\n context: IfcExpressionContext\n ): LiteralValueAnyArity {\n const errorListener = new IfcExpressionErrorListener();\n const tree: ExprContext = IfcExpression.parse(expression, errorListener);\n if (errorListener.isErrorOccurred()) {\n throw errorListener.getException();\n }\n const parsedExpression = this.extractExprTree(tree);\n return parsedExpression.evaluate(context);\n }\n\n private static extractExprTree(tree: ExprContext): Expr<any> {\n const visitor = new ExprVisitor();\n return visitor.visit(tree);\n }\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IfcExpressionErrorListener = void 0;
|
|
4
|
+
const antlr4_1 = require("antlr4");
|
|
5
|
+
const IfcExpressionUtils_js_1 = require("./IfcExpressionUtils.js");
|
|
6
|
+
const SyntaxErrorException_js_1 = require("./SyntaxErrorException.js");
|
|
7
|
+
class IfcExpressionErrorListener extends antlr4_1.ErrorListener {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.exception = null;
|
|
11
|
+
}
|
|
12
|
+
syntaxError(recognizer, offendingSymbol, line, column, msg, e) {
|
|
13
|
+
this.exception = new SyntaxErrorException_js_1.SyntaxErrorException(offendingSymbol, line, column, msg);
|
|
14
|
+
}
|
|
15
|
+
isErrorOccurred() {
|
|
16
|
+
return (0, IfcExpressionUtils_js_1.isPresent)(this.exception);
|
|
17
|
+
}
|
|
18
|
+
getException() {
|
|
19
|
+
return this.exception;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.IfcExpressionErrorListener = IfcExpressionErrorListener;
|
|
23
|
+
//# sourceMappingURL=IfcExpressionErrorListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/IfcExpressionErrorListener.ts"],"names":[],"mappings":";;;AAAA,mCAAgF;AAChF,mEAAoD;AACpD,uEAAiE;AAEjE,MAAa,0BAA2B,SAAQ,sBAAoB;IAApE;;QACU,cAAS,GAAyB,IAAI,CAAC;IAyBjD,CAAC;IAvBC,WAAW,CACT,UAA6B,EAC7B,eAAsB,EACtB,IAAY,EACZ,MAAc,EACd,GAAW,EACX,CAAmC;QAEnC,IAAI,CAAC,SAAS,GAAG,IAAI,8CAAoB,CACvC,eAAe,EACf,IAAI,EACJ,MAAM,EACN,GAAG,CACJ,CAAC;IACJ,CAAC;IAEM,eAAe;QACpB,OAAO,IAAA,iCAAS,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AA1BD,gEA0BC","file":"IfcExpressionErrorListener.js","sourcesContent":["import { ErrorListener, RecognitionException, Recognizer, Token } from \"antlr4\";\nimport { isPresent } from \"./IfcExpressionUtils.js\";\nimport { SyntaxErrorException } from \"./SyntaxErrorException.js\";\n\nexport class IfcExpressionErrorListener extends ErrorListener<Token> {\n private exception: SyntaxErrorException = null;\n\n syntaxError(\n recognizer: Recognizer<Token>,\n offendingSymbol: Token,\n line: number,\n column: number,\n msg: string,\n e: RecognitionException | undefined\n ) {\n this.exception = new SyntaxErrorException(\n offendingSymbol,\n line,\n column,\n msg\n );\n }\n\n public isErrorOccurred(): boolean {\n return isPresent(this.exception);\n }\n\n public getException(): SyntaxErrorException {\n return this.exception;\n }\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPresent = exports.isNullish = void 0;
|
|
4
|
+
function isNullish(val) {
|
|
5
|
+
return typeof val === "undefined" || val === null;
|
|
6
|
+
}
|
|
7
|
+
exports.isNullish = isNullish;
|
|
8
|
+
function isPresent(val) {
|
|
9
|
+
return !isNullish(val);
|
|
10
|
+
}
|
|
11
|
+
exports.isPresent = isPresent;
|
|
12
|
+
//# sourceMappingURL=IfcExpressionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/IfcExpressionUtils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAC,GAAQ;IAChC,OAAO,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,CAAC;AACpD,CAAC;AAFD,8BAEC;AAED,SAAgB,SAAS,CAAC,GAAQ;IAChC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAFD,8BAEC","file":"IfcExpressionUtils.js","sourcesContent":["export function isNullish(val: any) {\n return typeof val === \"undefined\" || val === null;\n}\n\nexport function isPresent(val: any): boolean {\n return !isNullish(val);\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SyntaxErrorException = void 0;
|
|
4
|
+
const IfcExpressionUtils_js_1 = require("./IfcExpressionUtils.js");
|
|
5
|
+
class SyntaxErrorException extends Error {
|
|
6
|
+
constructor(offendingSymbol, line, column, msg) {
|
|
7
|
+
super(`Syntax Error in line ${line}, column ${column}` +
|
|
8
|
+
((0, IfcExpressionUtils_js_1.isPresent)(msg) ? `: ${msg}` : ""));
|
|
9
|
+
this._offendingSymbol = offendingSymbol;
|
|
10
|
+
this._line = line;
|
|
11
|
+
this._column = column;
|
|
12
|
+
}
|
|
13
|
+
get offendingSymbol() {
|
|
14
|
+
return this._offendingSymbol;
|
|
15
|
+
}
|
|
16
|
+
get line() {
|
|
17
|
+
return this._line;
|
|
18
|
+
}
|
|
19
|
+
get column() {
|
|
20
|
+
return this._column;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.SyntaxErrorException = SyntaxErrorException;
|
|
24
|
+
//# sourceMappingURL=SyntaxErrorException.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/SyntaxErrorException.ts"],"names":[],"mappings":";;;AACA,mEAAoD;AAEpD,MAAa,oBAAqB,SAAQ,KAAK;IAK7C,YACE,eAAsB,EACtB,IAAY,EACZ,MAAc,EACd,GAAW;QAEX,KAAK,CACH,wBAAwB,IAAI,YAAY,MAAM,EAAE;YAC9C,CAAC,IAAA,iCAAS,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AA/BD,oDA+BC","file":"SyntaxErrorException.js","sourcesContent":["import { Token } from \"antlr4\";\nimport { isPresent } from \"./IfcExpressionUtils.js\";\n\nexport class SyntaxErrorException extends Error {\n private readonly _offendingSymbol: Token;\n private readonly _line: number;\n private readonly _column: number;\n\n constructor(\n offendingSymbol: Token,\n line: number,\n column: number,\n msg: string\n ) {\n super(\n `Syntax Error in line ${line}, column ${column}` +\n (isPresent(msg) ? `: ${msg}` : \"\")\n );\n this._offendingSymbol = offendingSymbol;\n this._line = line;\n this._column = column;\n }\n\n get offendingSymbol(): Token {\n return this._offendingSymbol;\n }\n\n get line(): number {\n return this._line;\n }\n\n get column(): number {\n return this._column;\n }\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IfcElementAccessor = void 0;
|
|
4
|
+
const IfcRootObjectAccessor_js_1 = require("./IfcRootObjectAccessor.js");
|
|
5
|
+
const StringValue_js_1 = require("../value/StringValue.js");
|
|
6
|
+
const IfcExpressionUtils_js_1 = require("../IfcExpressionUtils.js");
|
|
7
|
+
class IfcElementAccessor extends IfcRootObjectAccessor_js_1.IfcRootObjectAccessor {
|
|
8
|
+
getNestedObjectAccessor(name) {
|
|
9
|
+
if (name === "type") {
|
|
10
|
+
return this.getTypeObjectAccessor();
|
|
11
|
+
}
|
|
12
|
+
let val = this.getIfcPropertyAccessor(name);
|
|
13
|
+
if ((0, IfcExpressionUtils_js_1.isPresent)(val)) {
|
|
14
|
+
return val;
|
|
15
|
+
}
|
|
16
|
+
return this.getIfcPropertySetAccessor(name);
|
|
17
|
+
}
|
|
18
|
+
getAttribute(name) {
|
|
19
|
+
switch (name) {
|
|
20
|
+
case "ifcClass":
|
|
21
|
+
return new StringValue_js_1.StringValue(this.getIfcClass());
|
|
22
|
+
default:
|
|
23
|
+
return super.getAttribute(name);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
listNestedObjects() {
|
|
27
|
+
return ["type", ...this.listIfcProperties(), ...this.listIfcPropertySets()];
|
|
28
|
+
}
|
|
29
|
+
listAttributes() {
|
|
30
|
+
return ["ifcClass", ...super.listAttributes()];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.IfcElementAccessor = IfcElementAccessor;
|
|
34
|
+
//# sourceMappingURL=IfcElementAccessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/IfcElementAccessor.ts"],"names":[],"mappings":";;;AACA,yEAAmE;AAInE,4DAAsD;AACtD,oEAAqD;AAGrD,MAAsB,kBAAmB,SAAQ,gDAAqB;IACpE,uBAAuB,CAAC,IAAY;QAClC,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;SACrC;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAA,iCAAS,EAAC,GAAG,CAAC,EAAE;YAClB,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,UAAU;gBACb,OAAO,IAAI,4BAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7C;gBACE,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACnC;IACH,CAAC;IAID,iBAAiB;QACf,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;CAcF;AA3CD,gDA2CC","file":"context/IfcElementAccessor.js","sourcesContent":["import { ObjectAccessor } from \"./ObjectAccessor.js\";\nimport { IfcRootObjectAccessor } from \"./IfcRootObjectAccessor.js\";\nimport { IfcTypeObjectAccessor } from \"./IfcTypeObjectAccessor.js\";\nimport { IfcPropertyAccessor } from \"./IfcPropertyAccessor.js\";\nimport { LiteralValueAnyArity } from \"../value/LiteralValueAnyArity.js\";\nimport { StringValue } from \"../value/StringValue.js\";\nimport { isPresent } from \"../IfcExpressionUtils.js\";\nimport { IfcPropertySetAccessor } from \"./IfcPropertySetAccessor.js\";\n\nexport abstract class IfcElementAccessor extends IfcRootObjectAccessor {\n getNestedObjectAccessor(name: string): ObjectAccessor | undefined {\n if (name === \"type\") {\n return this.getTypeObjectAccessor();\n }\n let val = this.getIfcPropertyAccessor(name);\n if (isPresent(val)) {\n return val;\n }\n return this.getIfcPropertySetAccessor(name);\n }\n\n getAttribute(name: string): LiteralValueAnyArity | undefined {\n switch (name) {\n case \"ifcClass\":\n return new StringValue(this.getIfcClass());\n default:\n return super.getAttribute(name);\n }\n }\n\n abstract getIfcClass(): string;\n\n listNestedObjects(): Array<string> {\n return [\"type\", ...this.listIfcProperties(), ...this.listIfcPropertySets()];\n }\n\n listAttributes(): Array<string> {\n return [\"ifcClass\", ...super.listAttributes()];\n }\n\n abstract listIfcProperties(): Array<string>;\n\n abstract listIfcPropertySets(): Array<string>;\n\n abstract getTypeObjectAccessor(): IfcTypeObjectAccessor | undefined;\n abstract getIfcPropertyAccessor(\n propertyName: string\n ): IfcPropertyAccessor | undefined;\n\n abstract getIfcPropertySetAccessor(\n name: string\n ): IfcPropertySetAccessor | undefined;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/IfcExpressionContext.ts"],"names":[],"mappings":"","file":"context/IfcExpressionContext.js","sourcesContent":["import { IfcPropertyAccessor } from \"./IfcPropertyAccessor.js\";\nimport { IfcElementAccessor } from \"./IfcElementAccessor.js\";\n\nexport interface IfcExpressionContext {\n resolvePropRef(): IfcPropertyAccessor;\n\n resolveElemRef(): IfcElementAccessor;\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IfcPropertyAccessor = void 0;
|
|
4
|
+
const NamedObjectAccessor_js_1 = require("./NamedObjectAccessor.js");
|
|
5
|
+
class IfcPropertyAccessor extends NamedObjectAccessor_js_1.NamedObjectAccessor {
|
|
6
|
+
getNestedObjectAccessor(name) {
|
|
7
|
+
switch (name) {
|
|
8
|
+
case "pset":
|
|
9
|
+
return this.getPropertySetAccessor();
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
listNestedObjects() {
|
|
14
|
+
return ["pset"];
|
|
15
|
+
}
|
|
16
|
+
listAttributes() {
|
|
17
|
+
return ["value", ...super.listAttributes()];
|
|
18
|
+
}
|
|
19
|
+
getAttribute(name) {
|
|
20
|
+
switch (name) {
|
|
21
|
+
case "value":
|
|
22
|
+
return this.getValue();
|
|
23
|
+
}
|
|
24
|
+
return super.getAttribute(name);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.IfcPropertyAccessor = IfcPropertyAccessor;
|
|
28
|
+
//# sourceMappingURL=IfcPropertyAccessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/IfcPropertyAccessor.ts"],"names":[],"mappings":";;;AACA,qEAA+D;AAI/D,MAAsB,mBAAoB,SAAQ,4CAAmB;IACnE,uBAAuB,CAAC,IAAY;QAClC,QAAQ,IAAI,EAAE;YACZ,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACxC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iBAAiB;QACf,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CAIF;AA3BD,kDA2BC","file":"context/IfcPropertyAccessor.js","sourcesContent":["import { ObjectAccessor } from \"./ObjectAccessor.js\";\nimport { NamedObjectAccessor } from \"./NamedObjectAccessor.js\";\nimport { IfcPropertySetAccessor } from \"./IfcPropertySetAccessor.js\";\nimport { LiteralValueAnyArity } from \"../value/LiteralValueAnyArity.js\";\n\nexport abstract class IfcPropertyAccessor extends NamedObjectAccessor {\n getNestedObjectAccessor(name: string): ObjectAccessor | undefined {\n switch (name) {\n case \"pset\":\n return this.getPropertySetAccessor();\n }\n return undefined;\n }\n\n listNestedObjects(): Array<string> {\n return [\"pset\"];\n }\n\n listAttributes(): Array<string> {\n return [\"value\", ...super.listAttributes()];\n }\n\n getAttribute(name: string): LiteralValueAnyArity | undefined {\n switch (name) {\n case \"value\":\n return this.getValue();\n }\n return super.getAttribute(name);\n }\n\n protected abstract getValue(): LiteralValueAnyArity;\n protected abstract getPropertySetAccessor(): IfcPropertySetAccessor;\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IfcPropertySetAccessor = void 0;
|
|
4
|
+
const IfcRootObjectAccessor_js_1 = require("./IfcRootObjectAccessor.js");
|
|
5
|
+
class IfcPropertySetAccessor extends IfcRootObjectAccessor_js_1.IfcRootObjectAccessor {
|
|
6
|
+
listAttributes() {
|
|
7
|
+
return [...super.listAttributes(), ...this.listIfcProperties()];
|
|
8
|
+
}
|
|
9
|
+
getAttribute(name) {
|
|
10
|
+
return super.getAttribute(name);
|
|
11
|
+
}
|
|
12
|
+
getNestedObjectAccessor(name) {
|
|
13
|
+
return this.getIfcPropertyAccessor(name);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.IfcPropertySetAccessor = IfcPropertySetAccessor;
|
|
17
|
+
//# sourceMappingURL=IfcPropertySetAccessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/IfcPropertySetAccessor.ts"],"names":[],"mappings":";;;AAAA,yEAAmE;AAKnE,MAAsB,sBAAuB,SAAQ,gDAAqB;IACxE,cAAc;QACZ,OAAO,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,uBAAuB,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CAMF;AAjBD,wDAiBC","file":"context/IfcPropertySetAccessor.js","sourcesContent":["import { IfcRootObjectAccessor } from \"./IfcRootObjectAccessor.js\";\nimport { LiteralValueAnyArity } from \"../value/LiteralValueAnyArity.js\";\nimport { IfcPropertyAccessor } from \"./IfcPropertyAccessor.js\";\nimport { ObjectAccessor } from \"./ObjectAccessor.js\";\n\nexport abstract class IfcPropertySetAccessor extends IfcRootObjectAccessor {\n listAttributes(): Array<string> {\n return [...super.listAttributes(), ...this.listIfcProperties()];\n }\n\n getAttribute(name: string): LiteralValueAnyArity | undefined {\n return super.getAttribute(name);\n }\n\n getNestedObjectAccessor(name: string): ObjectAccessor | undefined {\n return this.getIfcPropertyAccessor(name);\n }\n\n protected abstract listIfcProperties(): Array<string>;\n protected abstract getIfcPropertyAccessor(\n name: string\n ): IfcPropertyAccessor | undefined;\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IfcRootObjectAccessor = void 0;
|
|
4
|
+
const NamedObjectAccessor_js_1 = require("./NamedObjectAccessor.js");
|
|
5
|
+
const StringValue_js_1 = require("../value/StringValue.js");
|
|
6
|
+
class IfcRootObjectAccessor extends NamedObjectAccessor_js_1.NamedObjectAccessor {
|
|
7
|
+
getAttribute(name) {
|
|
8
|
+
switch (name) {
|
|
9
|
+
case "guid":
|
|
10
|
+
return new StringValue_js_1.StringValue(this.getGuid());
|
|
11
|
+
}
|
|
12
|
+
return super.getAttribute(name);
|
|
13
|
+
}
|
|
14
|
+
listAttributes() {
|
|
15
|
+
return ["guid", ...super.listAttributes()];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.IfcRootObjectAccessor = IfcRootObjectAccessor;
|
|
19
|
+
//# sourceMappingURL=IfcRootObjectAccessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/IfcRootObjectAccessor.ts"],"names":[],"mappings":";;;AAAA,qEAA+D;AAE/D,4DAAsD;AAEtD,MAAsB,qBAAsB,SAAQ,4CAAmB;IACrE,YAAY,CAAC,IAAY;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,MAAM;gBACT,OAAO,IAAI,4BAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC1C;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAID,cAAc;QACZ,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF;AAdD,sDAcC","file":"context/IfcRootObjectAccessor.js","sourcesContent":["import { NamedObjectAccessor } from \"./NamedObjectAccessor.js\";\nimport { LiteralValueAnyArity } from \"../value/LiteralValueAnyArity.js\";\nimport { StringValue } from \"../value/StringValue.js\";\n\nexport abstract class IfcRootObjectAccessor extends NamedObjectAccessor {\n getAttribute(name: string): LiteralValueAnyArity | undefined {\n switch (name) {\n case \"guid\":\n return new StringValue(this.getGuid());\n }\n return super.getAttribute(name);\n }\n\n abstract getGuid(): string;\n\n listAttributes(): Array<string> {\n return [\"guid\", ...super.listAttributes()];\n }\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IfcTypeObjectAccessor = void 0;
|
|
4
|
+
const IfcRootObjectAccessor_js_1 = require("./IfcRootObjectAccessor.js");
|
|
5
|
+
const IfcExpressionUtils_js_1 = require("../IfcExpressionUtils.js");
|
|
6
|
+
class IfcTypeObjectAccessor extends IfcRootObjectAccessor_js_1.IfcRootObjectAccessor {
|
|
7
|
+
getNestedObjectAccessor(name) {
|
|
8
|
+
let val = this.getIfcPropertyAccessor(name);
|
|
9
|
+
if ((0, IfcExpressionUtils_js_1.isPresent)(val)) {
|
|
10
|
+
return val;
|
|
11
|
+
}
|
|
12
|
+
return this.getIfcPropertySetAccessor(name);
|
|
13
|
+
}
|
|
14
|
+
listNestedObjects() {
|
|
15
|
+
return [...this.listIfcPropertyNames(), ...this.listIfcPropertySetNames()];
|
|
16
|
+
}
|
|
17
|
+
listAttributes() {
|
|
18
|
+
return [...super.listAttributes()];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.IfcTypeObjectAccessor = IfcTypeObjectAccessor;
|
|
22
|
+
//# sourceMappingURL=IfcTypeObjectAccessor.js.map
|