cumalis-lisp
Version:
A Scheme implementation written in Typescript.
39 lines (38 loc) • 16.5 kB
TypeScript
import type { Interpreter } from "./interpreter";
import { LISP } from "./types";
export declare const condExpand: import("./interpreter").BuiltInProcedureDefinition<"clauses" | "clause1", ({ clause1, clauses }: Partial<Record<"clauses" | "clause1", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.IPair | LISP.IUndefined>;
export declare const procedures: {
quote: import("./interpreter").BuiltInProcedureDefinition<"value", ({ value }: Partial<Record<"value", LISP.Object | LISP.Object[] | null>>) => LISP.Object>;
lambda: import("./interpreter").BuiltInProcedureDefinition<"body" | "formals", ({ formals, body }: Partial<Record<"body" | "formals", LISP.Object | LISP.Object[] | null>>, _itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.Procedure>;
If: import("./interpreter").BuiltInProcedureDefinition<"alternate" | "test" | "consequent", ({ test, consequent, alternate }: Partial<Record<"alternate" | "test" | "consequent", LISP.Object | LISP.Object[] | null>>) => LISP.Object>;
setD: import("./interpreter").BuiltInProcedureDefinition<"expr" | "variable", ({ variable, expr }: Partial<Record<"expr" | "variable", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => ["<undefined>"]>;
include: import("./interpreter").BuiltInProcedureDefinition<"str1" | "strs", ({ str1, strs }: Partial<Record<"str1" | "strs", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => [className: "<symbol>", value: string] | [className: "<symbol>", value: string, ns: LISP.StaticNS | null, key: string | null] | LISP.IString | LISP.INumber | LISP.IBoolean | LISP.ICharacter | LISP.IPair | LISP.INull | LISP.IVector | LISP.IByteVector | LISP.IEndOfFile | [className: "<procedure>", type: "built-in", name: string] | [className: "<procedure>", type: "lambda", parameters: LISP.ProcedureParameter<string, "optional" | "head" | "variadic" | "tail">[], body: LISP.Object, isMacro: boolean, env: LISP.Env] | LISP.IContinuation | LISP.IParameter | [className: "<port>", type: "built-in", name: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | [className: "<port>", type: "string", content: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string] | [className: "<port>", type: "bytevector", content: number[], mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: number[]] | [className: "<port>", type: "file", discriptor: number, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | LISP.IRecordType | LISP.IRecord | LISP.IMultiValue | LISP.ISyntaxRules | LISP.IException | LISP.IUndefined | LISP.IPromise | LISP.IError | LISP.IEnvironmentSpec | LISP.ILibrary | ["<js>", "built-in", string] | ["<js>", "inline", any]>;
includeCli: import("./interpreter").BuiltInProcedureDefinition<"str1" | "strs", ({ str1, strs }: Partial<Record<"str1" | "strs", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => [className: "<symbol>", value: string] | [className: "<symbol>", value: string, ns: LISP.StaticNS | null, key: string | null] | LISP.IString | LISP.INumber | LISP.IBoolean | LISP.ICharacter | LISP.IPair | LISP.INull | LISP.IVector | LISP.IByteVector | LISP.IEndOfFile | [className: "<procedure>", type: "built-in", name: string] | [className: "<procedure>", type: "lambda", parameters: LISP.ProcedureParameter<string, "optional" | "head" | "variadic" | "tail">[], body: LISP.Object, isMacro: boolean, env: LISP.Env] | LISP.IContinuation | LISP.IParameter | [className: "<port>", type: "built-in", name: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | [className: "<port>", type: "string", content: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string] | [className: "<port>", type: "bytevector", content: number[], mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: number[]] | [className: "<port>", type: "file", discriptor: number, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | LISP.IRecordType | LISP.IRecord | LISP.IMultiValue | LISP.ISyntaxRules | LISP.IException | LISP.IUndefined | LISP.IPromise | LISP.IError | LISP.IEnvironmentSpec | LISP.ILibrary | ["<js>", "built-in", string] | ["<js>", "inline", any]>;
cond: import("./interpreter").BuiltInProcedureDefinition<"clause" | "clauses", ({ clause, clauses }: Partial<Record<"clause" | "clauses", LISP.Object | LISP.Object[] | null>>) => [className: "<symbol>", value: string] | [className: "<symbol>", value: string, ns: LISP.StaticNS | null, key: string | null] | LISP.IString | LISP.INumber | LISP.IBoolean | LISP.ICharacter | LISP.IPair | LISP.INull | LISP.IVector | LISP.IByteVector | LISP.IEndOfFile | [className: "<procedure>", type: "built-in", name: string] | [className: "<procedure>", type: "lambda", parameters: LISP.ProcedureParameter<string, "optional" | "head" | "variadic" | "tail">[], body: LISP.Object, isMacro: boolean, env: LISP.Env] | LISP.IContinuation | LISP.IParameter | [className: "<port>", type: "built-in", name: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | [className: "<port>", type: "string", content: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string] | [className: "<port>", type: "bytevector", content: number[], mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: number[]] | [className: "<port>", type: "file", discriptor: number, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | LISP.IRecordType | LISP.IRecord | LISP.IMultiValue | LISP.ISyntaxRules | LISP.IException | LISP.IUndefined | LISP.IPromise | LISP.IError | LISP.IEnvironmentSpec | LISP.ILibrary | ["<js>", "built-in", string] | ["<js>", "inline", any]>;
Case: import("./interpreter").BuiltInProcedureDefinition<"clauses" | "key", ({ key, clauses }: Partial<Record<"clauses" | "key", LISP.Object | LISP.Object[] | null>>) => [className: "<symbol>", value: string] | [className: "<symbol>", value: string, ns: LISP.StaticNS | null, key: string | null] | LISP.IString | LISP.INumber | LISP.IBoolean | LISP.ICharacter | LISP.IPair | LISP.INull | LISP.IVector | LISP.IByteVector | LISP.IEndOfFile | [className: "<procedure>", type: "built-in", name: string] | [className: "<procedure>", type: "lambda", parameters: LISP.ProcedureParameter<string, "optional" | "head" | "variadic" | "tail">[], body: LISP.Object, isMacro: boolean, env: LISP.Env] | LISP.IContinuation | LISP.IParameter | [className: "<port>", type: "built-in", name: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | [className: "<port>", type: "string", content: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string] | [className: "<port>", type: "bytevector", content: number[], mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: number[]] | [className: "<port>", type: "file", discriptor: number, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | LISP.IRecordType | LISP.IRecord | LISP.IMultiValue | LISP.ISyntaxRules | LISP.IException | LISP.IUndefined | LISP.IPromise | LISP.IError | LISP.IEnvironmentSpec | LISP.ILibrary | ["<js>", "built-in", string] | ["<js>", "inline", any]>;
and: import("./interpreter").BuiltInProcedureDefinition<"rest" | "first", ({ first, rest }: Partial<Record<"rest" | "first", LISP.Object | LISP.Object[] | null>>) => LISP.IBoolean | LISP.List>;
or: import("./interpreter").BuiltInProcedureDefinition<"rest" | "first", ({ first, rest }: Partial<Record<"rest" | "first", LISP.Object | LISP.Object[] | null>>) => LISP.IBoolean | LISP.List>;
when: import("./interpreter").BuiltInProcedureDefinition<"expr" | "test" | "exprs", ({ test, expr, exprs }: Partial<Record<"expr" | "test" | "exprs", LISP.Object | LISP.Object[] | null>>) => LISP.Object>;
unless: import("./interpreter").BuiltInProcedureDefinition<"expr" | "test" | "exprs", ({ test, expr, exprs }: Partial<Record<"expr" | "test" | "exprs", LISP.Object | LISP.Object[] | null>>) => LISP.Object>;
condExpand: import("./interpreter").BuiltInProcedureDefinition<"clauses" | "clause1", ({ clause1, clauses }: Partial<Record<"clauses" | "clause1", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.IPair | LISP.IUndefined>;
Let: import("./interpreter").BuiltInProcedureDefinition<"args", ({ args }: Partial<Record<"args", LISP.Object | LISP.Object[] | null>>, _itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.List>;
LetStar: import("./interpreter").BuiltInProcedureDefinition<"body" | "bindings", ({ bindings, body }: Partial<Record<"body" | "bindings", LISP.Object | LISP.Object[] | null>>, _itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => [className: "<symbol>", value: string] | [className: "<symbol>", value: string, ns: LISP.StaticNS | null, key: string | null] | LISP.IString | LISP.INumber | LISP.IBoolean | LISP.ICharacter | LISP.IPair | LISP.INull | LISP.IVector | LISP.IByteVector | LISP.IEndOfFile | [className: "<procedure>", type: "built-in", name: string] | [className: "<procedure>", type: "lambda", parameters: LISP.ProcedureParameter<string, "optional" | "head" | "variadic" | "tail">[], body: LISP.Object, isMacro: boolean, env: LISP.Env] | LISP.IContinuation | LISP.IParameter | [className: "<port>", type: "built-in", name: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | [className: "<port>", type: "string", content: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string] | [className: "<port>", type: "bytevector", content: number[], mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: number[]] | [className: "<port>", type: "file", discriptor: number, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | LISP.IRecordType | LISP.IRecord | LISP.IMultiValue | LISP.ISyntaxRules | LISP.IException | LISP.IUndefined | LISP.IPromise | LISP.IError | LISP.IEnvironmentSpec | LISP.ILibrary | ["<js>", "built-in", string] | ["<js>", "inline", any]>;
letrecStar: import("./interpreter").BuiltInProcedureDefinition<"body" | "bindings", ({ bindings, body }: Partial<Record<"body" | "bindings", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.List>;
letrec: import("./interpreter").BuiltInProcedureDefinition<"body" | "bindings", ({ bindings, body }: Partial<Record<"body" | "bindings", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.List>;
letValues: import("./interpreter").BuiltInProcedureDefinition<"body" | "bindings", ({ bindings, body }: Partial<Record<"body" | "bindings", LISP.Object | LISP.Object[] | null>>, _itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.List>;
letStarValues: import("./interpreter").BuiltInProcedureDefinition<"body" | "bindings", ({ bindings, body }: Partial<Record<"body" | "bindings", LISP.Object | LISP.Object[] | null>>, _itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => [className: "<symbol>", value: string] | [className: "<symbol>", value: string, ns: LISP.StaticNS | null, key: string | null] | LISP.IString | LISP.INumber | LISP.IBoolean | LISP.ICharacter | LISP.IPair | LISP.INull | LISP.IVector | LISP.IByteVector | LISP.IEndOfFile | [className: "<procedure>", type: "built-in", name: string] | [className: "<procedure>", type: "lambda", parameters: LISP.ProcedureParameter<string, "optional" | "head" | "variadic" | "tail">[], body: LISP.Object, isMacro: boolean, env: LISP.Env] | LISP.IContinuation | LISP.IParameter | [className: "<port>", type: "built-in", name: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | [className: "<port>", type: "string", content: string, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string] | [className: "<port>", type: "bytevector", content: number[], mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: number[]] | [className: "<port>", type: "file", discriptor: number, mode: "r" | "w" | "rw" | null, elementClass: number | null, buffer: string | number[]] | LISP.IRecordType | LISP.IRecord | LISP.IMultiValue | LISP.ISyntaxRules | LISP.IException | LISP.IUndefined | LISP.IPromise | LISP.IError | LISP.IEnvironmentSpec | LISP.ILibrary | ["<js>", "built-in", string] | ["<js>", "inline", any]>;
begin: import("./interpreter").BuiltInProcedureDefinition<"last" | "exprs", ({ exprs, last }: Partial<Record<"last" | "exprs", LISP.Object | LISP.Object[] | null>>, _itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.Object | LISP.CallStack>;
Do: import("./interpreter").BuiltInProcedureDefinition<"clause" | "specs" | "commands", ({ specs, clause, commands }: Partial<Record<"clause" | "specs" | "commands", LISP.Object | LISP.Object[] | null>>) => LISP.List>;
makeParameter: import("./interpreter").BuiltInProcedureDefinition<"init" | "converter", ({ init, converter }: Partial<Record<"init" | "converter", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.IParameter>;
parameterize: import("./interpreter").BuiltInProcedureDefinition<"body" | "assocs", ({ assocs, body }: Partial<Record<"body" | "assocs", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.CallStack>;
defineParameter: import("./interpreter").BuiltInProcedureDefinition<"param" | "value", ({ param, value }: Partial<Record<"param" | "value", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.Object>;
defineParameter1: import("./interpreter").BuiltInProcedureDefinition<"param" | "value", ({ param, value }: Partial<Record<"param" | "value", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.IUndefined>;
guard: import("./interpreter").BuiltInProcedureDefinition<"body" | "arg1", ({ arg1, body }: Partial<Record<"body" | "arg1", LISP.Object | LISP.Object[] | null>>, _itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.List>;
quasiquote: import("./interpreter").BuiltInProcedureDefinition<"template", ({ template }: Partial<Record<"template", LISP.Object | LISP.Object[] | null>>) => LISP.List>;
quasiquote1: import("./interpreter").BuiltInProcedureDefinition<"template" | "exprs" | "marks", ({ template, marks, exprs }: Partial<Record<"template" | "exprs" | "marks", LISP.Object | LISP.Object[] | null>>) => LISP.Object>;
letSyntax: import("./interpreter").BuiltInProcedureDefinition<"body" | "bindings", ({ bindings, body }: Partial<Record<"body" | "bindings", LISP.Object | LISP.Object[] | null>>, _itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.List>;
letrecSyntax: import("./interpreter").BuiltInProcedureDefinition<"body" | "bindings", ({ bindings, body }: Partial<Record<"body" | "bindings", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.List>;
syntaxRules: import("./interpreter").BuiltInProcedureDefinition<"args" | "arg1" | "arg2", ({ arg1, arg2, args }: Partial<Record<"args" | "arg1" | "arg2", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.ISyntaxRules>;
applySyntaxRules: import("./interpreter").BuiltInProcedureDefinition<"args" | "spec", ({ spec, args }: Partial<Record<"args" | "spec", LISP.Object | LISP.Object[] | null>>, itrp: Interpreter | undefined, stack: LISP.CallStack | undefined) => LISP.Object>;
syntaxError: import("./interpreter").BuiltInProcedureDefinition<"message" | "args", ({ message, args }: Partial<Record<"message" | "args", LISP.Object | LISP.Object[] | null>>) => never>;
};