thaw-grammar
Version:
Implementations of the grammars of several programming languages, including LISP, Scheme, Prolog, and the Lambda Calculus.
20 lines • 1.41 kB
TypeScript
import { IEnvironmentFrame } from '../../../common/domain-object-model/environment-frame';
import { IExpression } from '../../../common/domain-object-model/iexpression';
import { IGlobalInfo } from '../../../common/domain-object-model/iglobal-info';
import { IVariable } from '../../../common/domain-object-model/variable';
import { ISExpression } from '../../lisp/domain-object-model/isexpression';
import { SExpressionBase } from '../../lisp/domain-object-model/sexpression-base';
import { ICallableSExpression } from './icallable-sexpression';
export declare class Closure extends SExpressionBase implements ICallableSExpression {
readonly argList: IVariable<ISExpression>[];
readonly body: IExpression<ISExpression>;
readonly closureEnvironment: IEnvironmentFrame<ISExpression>;
readonly line: number;
readonly column: number;
constructor(argList: IVariable<ISExpression>[], body: IExpression<ISExpression>, closureEnvironment: IEnvironmentFrame<ISExpression>, line?: number, column?: number);
call(expressionList: IExpression<ISExpression>[], localEnvironment: IEnvironmentFrame<ISExpression>, globalInfo: IGlobalInfo<ISExpression>): ISExpression;
isClosure(): boolean;
toString(): string;
evaluate(globalInfo: IGlobalInfo<ISExpression>, localEnvironment?: IEnvironmentFrame<ISExpression>, options?: unknown): ISExpression;
}
//# sourceMappingURL=closure.d.ts.map