ifc-expressions
Version:
Parsing and evaluation of IFC expressions
43 lines (42 loc) • 2.96 kB
TypeScript
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>;
}