import * as Shift from 'shift-ast'; import ExecutedFunction from './executedFunction'; export default class Scope { node: Shift.Node; parent?: Scope; children: Map; executedFunctions: Map; /** * Creates a new scope. * @param node The node that created the scope. * @param parent The parent scope (optional). */ constructor(node: Shift.Node, parent?: Scope); /** * Searches for an executed function by name. * @param name The name of the executed function. */ findExecutedFunction(name: string): ExecutedFunction | null; /** * Adds an executed function. * @param array The executed function to be added. */ addExecutedFunction(func: ExecutedFunction): void; /** * Adds an alias for an executed function. * @param func The executed function. * @param name The alias. */ addAlias(func: ExecutedFunction, name: string): void; }