@akala/core
Version:
36 lines (35 loc) • 2.2 kB
TypeScript
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;
}