UNPKG

thaw-grammar

Version:

Implementations of the grammars of several programming languages, including LISP, Scheme, Prolog, and the Lambda Calculus.

31 lines 1.67 kB
import { IImmutableSet } from 'thaw-common-utilities.ts'; import { ILCBetaReductionOptions, ILCExpression, ILCFunctionCall, ILCSubstitution, ILCUnifiable } from './interfaces/expression'; import { LCValueBase } from './value-base'; export declare class LCFunctionCall extends LCValueBase implements ILCFunctionCall { readonly callee: ILCExpression; readonly arg: ILCExpression; constructor(callee: ILCExpression, arg: ILCExpression); toString(): string; containsVariableNamed(name: string): boolean; containsBoundVariableNamed(name: string): boolean; containsUnboundVariableNamed(name: string, boundVariableNames: IImmutableSet<string>): boolean; substituteForUnboundVariable(name: string, value: ILCExpression): ILCExpression; renameBoundVariable(newName: string, oldName: string): ILCExpression; isBetaReducible(): boolean; private betaReduceCore; private betaReduceCallByName; private betaReduceNormalOrder; private betaReduceCallByValue; private betaReduceApplicativeOrder; private betaReduceHybridApplicativeOrder; private betaReduceHeadSpine; private betaReduceHybridNormalOrder; private betaReduceThAWHackForYCombinator; betaReduce(options?: ILCBetaReductionOptions): ILCExpression; deltaReduce(): ILCExpression; etaReduce(): ILCExpression; getSetOfAllVariableNames(): IImmutableSet<string>; applySubstitution(substitution: ILCSubstitution): ILCExpression; unify(other: ILCUnifiable, variablesInOriginalExpr1Param?: IImmutableSet<string>, variablesInOriginalExpr2Param?: IImmutableSet<string>): ILCSubstitution | undefined; } //# sourceMappingURL=call.d.ts.map