UNPKG

ifc-expressions

Version:

Parsing and evaluation of IFC expressions

43 lines (42 loc) 2.96 kB
import IfcExpressionVisitor from "../gen/parser/IfcExpressionVisitor.js"; import { ArrayElementListContext, ArrayExprContext, BooleanLiteralContext, ExprContext, ExprListContext, FunctionCallContext, LiteralContext, LogicalLiteralContext, MethodCallChainEndContext, MethodCallChainInnerContext, NumLiteralContext, SEAddSubContext, SEArrayExprContext, SEBooleanBinaryOpContext, SEComparisonContext, SEFunctionCallContext, SELiteralContext, SEMethodCallContext, SEMulDivContext, SENotContext, SEParenthesisContext, SEPowerContext, SEUnaryMinusContext, SEUnaryMultipleMinusContext, SEVariableRefContext, StringLiteralContext, VariableRefContext } from "../gen/parser/IfcExpressionParser.js"; import { Expr } from "../expression/Expr.js"; import { TypeManager } from "./TypeManager.js"; import { ExprManager } from "./ExprManager.js"; export declare class ExprCompiler extends IfcExpressionVisitor<Expr<any>> { private readonly methodCallTargetStack; private readonly typeManager; private readonly exprManager; constructor(typeManager: TypeManager); getExprManager(): ExprManager; visitExpr: (ctx: ExprContext) => Expr<any>; private associateContextAndReturn; visitVariableRef: (ctx: VariableRefContext) => Expr<any>; visitSEComparison: (ctx: SEComparisonContext) => Expr<any>; visitSEMethodCall: (ctx: SEMethodCallContext) => Expr<any>; visitSELiteral: (ctx: SELiteralContext) => Expr<any>; visitSEVariableRef: (ctx: SEVariableRefContext) => Expr<any>; visitSEArrayExpr: (ctx: SEArrayExprContext) => Expr<any>; visitSEFunctionCall: (ctx: SEFunctionCallContext) => Expr<any>; visitSEParenthesis: (ctx: SEParenthesisContext) => Expr<any>; visitMethodCallChainInner: (ctx: MethodCallChainInnerContext) => Expr<any>; visitMethodCallChainEnd: (ctx: MethodCallChainEndContext) => Expr<any>; visitSEAddSub: (ctx: SEAddSubContext) => Expr<any>; private makePlusExpr; visitSEMulDiv: (ctx: SEMulDivContext) => Expr<any>; visitStringLiteral: (ctx: StringLiteralContext) => Expr<any>; visitNumLiteral: (ctx: NumLiteralContext) => Expr<any>; visitSEUnaryMultipleMinus: (ctx: SEUnaryMultipleMinusContext) => Expr<any>; visitSEPower: (ctx: SEPowerContext) => Expr<any>; visitSEUnaryMinus: (ctx: SEUnaryMinusContext) => Expr<any>; visitSEBooleanBinaryOp: (ctx: SEBooleanBinaryOpContext) => Expr<any>; visitBooleanLiteral: (ctx: BooleanLiteralContext) => Expr<any>; visitLogicalLiteral: (ctx: LogicalLiteralContext) => Expr<any>; visitSENot: (ctx: SENotContext) => Expr<any>; visitArrayExpr: (ctx: ArrayExprContext) => Expr<any>; collectArrayElements: (ctx: ArrayElementListContext) => Array<Expr<any>>; visitFunctionCall: (ctx: FunctionCallContext) => Expr<any>; collectFunctionArguments: (ctx: ExprListContext, resultSoFar?: Array<Expr<any>>) => Array<Expr<any>>; private static failNode; visitLiteral: (ctx: LiteralContext) => Expr<any>; }