UNPKG

thaw-grammar

Version:

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

23 lines 1.34 kB
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