UNPKG

cumalis-lisp

Version:

A Scheme implementation written in Typescript.

39 lines (38 loc) 16.5 kB
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>; };