import { BinaryExpression } from './BinaryExpression'; import { ConstantExpression } from './ConstantExpression'; import { Expression } from './Expression'; import { UnaryExpression } from './UnaryExpression'; export default abstract class ExpressionVisitor { visit(node?: Expression): void; abstract visitNegateExpression(node: UnaryExpression): void; abstract visitMemberAccessExpression(node: BinaryExpression): void; abstract visitCallExpression(node: Expression): void; abstract visitConstantExpression(node: ConstantExpression): void; abstract visitAddExpression(node: BinaryExpression): void; abstract visitAndAlsoExpression(node: BinaryExpression): void; abstract visitCoalesceExpression(node: BinaryExpression): void; abstract visitDivideExpression(node: BinaryExpression): void; abstract visitEqualExpression(node: BinaryExpression): void; abstract visitExclusiveOrExpression(node: BinaryExpression): void; abstract visitGreaterThanExpression(node: BinaryExpression): void; abstract visitGreaterThanOrEqualExpression(node: BinaryExpression): void; abstract visitLessThanExpression(node: BinaryExpression): void; abstract visitLessThanOrEqualExpression(node: BinaryExpression): void; abstract visitModuloExpression(node: BinaryExpression): void; abstract visitMultiplyExpression(node: BinaryExpression): void; abstract visitNotEqualExpression(node: BinaryExpression): void; abstract visitOrElseExpression(node: BinaryExpression): void; abstract visitPowerExpression(node: BinaryExpression): void; abstract visitSubtractExpression(node: BinaryExpression): void; }