js-slang
Version:
Javascript-based implementations of Source, written in Typescript
12 lines (11 loc) • 587 B
TypeScript
import { List } from '../stdlib/list';
export declare class Transformer {
literals: string[];
pattern: List;
template: List;
constructor(literals: string[], pattern: List, template: List);
}
export declare function macro_transform(input: any, transformer: Transformer): any;
export declare function match(input: any, pattern: any, literals: string[]): boolean;
export declare function collect(input: any, pattern: any, literals: string[]): Map<string, any[]>;
export declare function transform(template: any, collected: Map<string, any[]>, indexToCollect?: number): any;