thaw-grammar
Version:
Implementations of the grammars of several programming languages, including LISP, Scheme, Prolog, and the Lambda Calculus.
23 lines • 1.34 kB
TypeScript
import { IParser, ITokenizer } from 'thaw-interpreter-types';
import { BetaReductionStrategy, ILCExpression, IUnifiable } from './domain-object-model/interfaces/expression';
export declare const defaultBetaReductionStrategy = BetaReductionStrategy.NormalOrder;
export declare const defaultMaxBetaReductionDepth = 30;
export declare function getParseFunction(tokenizer: ITokenizer, parser: IParser): (str: string) => ILCExpression;
export declare function createVariableNameGenerator(): () => string;
export declare function reduce(expr: ILCExpression, options?: {
readonly strategy?: BetaReductionStrategy;
readonly generateNewVariableName?: () => string;
readonly maxDepth?: number;
}): ILCExpression;
export declare function getfb1(f: (str: string) => ILCExpression, options?: {
readonly strategy?: BetaReductionStrategy;
readonly generateNewVariableName?: () => string;
readonly maxDepth?: number;
}): (s: string) => ILCExpression;
export declare function getfb2(tokenizer: ITokenizer, parser: IParser, options?: {
readonly strategy?: BetaReductionStrategy;
readonly generateNewVariableName?: () => string;
readonly maxDepth?: number;
}): (s: string) => ILCExpression;
export declare function areIsomorphic<T>(expr1: IUnifiable<T>, expr2: IUnifiable<T>): boolean;
//# sourceMappingURL=utilities.d.ts.map