UNPKG

@akala/core

Version:
36 lines (35 loc) 2.2 kB
import { FormatExpression } from "../../parser.js"; import { ApplySymbolExpression } from "../apply-symbol-expression.js"; import { BinaryExpression } from "../binary-expression.js"; import { CallExpression } from "../call-expression.js"; import { ConstantExpression } from "../constant-expression.js"; import type { Expressions, StrictExpressions } from "../expression.js"; import { TypedLambdaExpression } from "../lambda-expression.js"; import { MemberExpression } from "../member-expression.js"; import { NewExpression } from "../new-expression.js"; import { ParameterExpression } from "../parameter-expression.js"; import { TernaryExpression } from "../ternary-expression.js"; import { UnaryExpression } from "../unary-expression.js"; import { ExpressionVisitor } from "./expression-visitor.js"; /** * Compares two expressions. * @param {any} expr1 - The first expression. * @param {any} expr2 - The second expression. * @returns {boolean} True if the expressions are equal, false otherwise. */ export declare class ExpressionComparer extends ExpressionVisitor { private source; constructor(source: Expressions); static equals(exp1: Expressions, exp2: Expressions): boolean; visitMember<T, TMember extends keyof T>(arg0: MemberExpression<T, TMember, T[TMember]>): StrictExpressions; visitApplySymbol<T, U>(arg0: ApplySymbolExpression<T, U>): StrictExpressions; visitBinary<T extends Expressions = StrictExpressions>(expression: BinaryExpression<T>): BinaryExpression<Expressions>; visitCall<T, TMethod extends keyof T>(arg0: CallExpression<T, TMethod>): StrictExpressions; visitConstant(arg0: ConstantExpression<unknown>): StrictExpressions; visitFormat<TOutput>(expression: FormatExpression<TOutput>): FormatExpression<TOutput>; visitLambda<T extends (...args: unknown[]) => unknown>(arg0: TypedLambdaExpression<T>): StrictExpressions; visitNew<T>(arg0: NewExpression<T>): StrictExpressions; visitParameter(arg0: ParameterExpression<unknown>): StrictExpressions; visitTernary<T extends Expressions = StrictExpressions>(arg0: TernaryExpression<T>): TernaryExpression<Expressions>; visitUnary(arg0: UnaryExpression): Expressions; }