@tsukiroku/tiny
Version:
Tiny interpreter
39 lines (38 loc) • 1.19 kB
TypeScript
import { Func, Enviroment, Options, Lexer, Parser, Program, LangObject } from './tiny';
export * from './tiny';
declare type Stdio = (...x: Array<any>) => any;
interface TinyOption extends Options {
enviroment?: Enviroment;
root?: string;
filename?: string;
}
interface StdioOptions {
stdin: Stdio;
stdout: Stdio;
stderr: Stdio;
}
declare const stdin: Stdio;
declare const stdout: Stdio;
declare const stderr: Stdio;
export default class Tiny {
x: string;
option: TinyOption;
builtins: Map<string, Func>;
stdio: StdioOptions;
constructor(x: string, option?: TinyOption);
tokenizer(): Lexer;
parser(): Parser;
parseProgram(): Program;
includeStdlib(env: Enviroment): void;
evaluate(program: Program, env: Enviroment): LangObject;
eval(): string;
evalProgram(program: Program): string;
setBuiltin(name: string, func: Func): Tiny;
setBuiltins(builtins: Map<string, Func>): Tiny;
applyBuiltins(): Tiny;
setStdin(func: Stdio): Tiny;
setStdout(func: Stdio): Tiny;
setStderr(func: Stdio): Tiny;
setFileName(filename: string): Tiny;
}
export { TinyOption, Stdio, StdioOptions, stdin, stdout, stderr };