|
|
|
@ -82,7 +82,7 @@ export const _rt = {
|
|
|
|
join: (delim: string) => (xs: string[]) => xs.join(delim),
|
|
|
|
join: (delim: string) => (xs: string[]) => xs.join(delim),
|
|
|
|
split: (delim: string) => (xs: string) => xs.split(delim),
|
|
|
|
split: (delim: string) => (xs: string) => xs.split(delim),
|
|
|
|
slice: (s: string | any[]) => (start: number) => (end: number) => s.slice(start, end),
|
|
|
|
slice: (s: string | any[]) => (start: number) => (end: number) => s.slice(start, end),
|
|
|
|
debug: (label: string) => (value: any) => { console.log(label, value); return value; },
|
|
|
|
"debug!": (label: string) => (value: any) => { console.log(label, value); return value; },
|
|
|
|
fuzzyMatch: (query: string) => (target: string) => {
|
|
|
|
fuzzyMatch: (query: string) => (target: string) => {
|
|
|
|
const q = query.toLowerCase();
|
|
|
|
const q = query.toLowerCase();
|
|
|
|
const t = target.toLowerCase();
|
|
|
|
const t = target.toLowerCase();
|
|
|
|
@ -101,7 +101,7 @@ export const _rt = {
|
|
|
|
const printed = prettyPrint(ast);
|
|
|
|
const printed = prettyPrint(ast);
|
|
|
|
return printed;
|
|
|
|
return printed;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
saveImage: () => {
|
|
|
|
"saveImage!": () => {
|
|
|
|
const saved: Record<string, string> = {};
|
|
|
|
const saved: Record<string, string> = {};
|
|
|
|
for (const [name, ast] of definitions) {
|
|
|
|
for (const [name, ast] of definitions) {
|
|
|
|
const source = prettyPrint({ kind: 'definition', name, body: ast });
|
|
|
|
const source = prettyPrint({ kind: 'definition', name, body: ast });
|
|
|
|
@ -137,7 +137,7 @@ export const _rt = {
|
|
|
|
|
|
|
|
|
|
|
|
return { _tag: 'Rebind', _0: name, _1: path, _2: value };
|
|
|
|
return { _tag: 'Rebind', _0: name, _1: path, _2: value };
|
|
|
|
},
|
|
|
|
},
|
|
|
|
undefine: (name: string) => {
|
|
|
|
"undefine": (name: string) => {
|
|
|
|
delete store[name];
|
|
|
|
delete store[name];
|
|
|
|
definitions.delete(name);
|
|
|
|
definitions.delete(name);
|
|
|
|
dependencies.delete(name);
|
|
|
|
dependencies.delete(name);
|
|
|
|
@ -171,7 +171,7 @@ export const _rt = {
|
|
|
|
return { _tag: 'NoneValue' };
|
|
|
|
return { _tag: 'NoneValue' };
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
eval: (code: string) => {
|
|
|
|
"eval!": (code: string) => {
|
|
|
|
const trimmed = code.trim();
|
|
|
|
const trimmed = code.trim();
|
|
|
|
|
|
|
|
|
|
|
|
// is it a definition
|
|
|
|
// is it a definition
|
|
|
|
|