thaw-grammar
Version:
Implementations of the grammars of several programming languages, including LISP, Scheme, Prolog, and the Lambda Calculus.
24 lines • 1.22 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 { ISExpression } from '../../lisp/domain-object-model/isexpression';
import { SExpressionBase } from '../../lisp/domain-object-model/sexpression-base';
export declare function isThunk(obj: unknown): obj is Thunk;
export declare class Thunk extends SExpressionBase {
readonly body: IExpression<ISExpression>;
thunkEnvironment: IEnvironmentFrame<ISExpression>;
readonly typename = "Thunk";
private dethunkedValue;
constructor(body: IExpression<ISExpression>, thunkEnvironment: IEnvironmentFrame<ISExpression>);
toString(): string;
isNumber(): boolean;
isSymbol(): boolean;
isList(): boolean;
isNull(): boolean;
isPrimOp(): boolean;
isClosure(): boolean;
isString(): boolean;
dethunk(globalInfo: IGlobalInfo<ISExpression>): ISExpression;
evaluate(globalInfo: IGlobalInfo<ISExpression>, localEnvironment?: IEnvironmentFrame<ISExpression>, options?: unknown): ISExpression;
}
//# sourceMappingURL=thunk.d.ts.map