UNPKG

tree-hugger-js

Version:

A friendly tree-sitter wrapper for JavaScript and TypeScript

28 lines 1.08 kB
import { TreeNode } from './node-wrapper'; export type VisitorFunction = (node: TreeNode, parent?: TreeNode) => void | boolean; export interface Visitor { enter?: VisitorFunction; exit?: VisitorFunction; } export declare class TreeVisitor { visit(node: TreeNode, visitor: Visitor | VisitorFunction): void; private visitNode; collect(node: TreeNode, predicate: (node: TreeNode) => boolean): TreeNode[]; findFirst(node: TreeNode, predicate: (node: TreeNode) => boolean): TreeNode | null; getPath(root: TreeNode, target: TreeNode): TreeNode[]; } export declare function visit(node: TreeNode, visitor: Visitor | VisitorFunction): void; export interface Scope { node: TreeNode; bindings: Map<string, TreeNode>; parent?: Scope; } export declare class ScopeAnalyzer { private scopes; private currentScope; analyze(root: TreeNode): Map<TreeNode, Scope>; private createsScope; getScope(node: TreeNode): Scope | undefined; findBinding(node: TreeNode, name: string): TreeNode | null; } //# sourceMappingURL=visitor.d.ts.map