@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
18 lines (17 loc) • 969 B
TypeScript
import ts from 'typescript';
import { ScriptBuilder } from '../sb';
import { VisitOptions } from '../types';
export interface Name {
readonly nameBrand: number;
}
export interface Scope {
readonly add: (name: string) => Name;
readonly addUnique: () => Name;
readonly get: (sb: ScriptBuilder, node: ts.Node, options: VisitOptions, name: Name | string) => void;
readonly getThis: (sb: ScriptBuilder, node: ts.Node, options: VisitOptions) => void;
readonly getGlobal: (sb: ScriptBuilder, node: ts.Node, options: VisitOptions) => void;
readonly set: (sb: ScriptBuilder, node: ts.Node, options: VisitOptions, name: Name | string) => void;
readonly setGlobal: (sb: ScriptBuilder, node: ts.Node, options: VisitOptions) => void;
readonly pushAll: (sb: ScriptBuilder, node: ts.Node, options: VisitOptions) => void;
readonly emit: (sb: ScriptBuilder, node: ts.Node, options: VisitOptions, func: (options: VisitOptions) => void) => void;
}