UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

15 lines (14 loc) 725 B
import { LookUp } from '../ast/base'; import { SyntaxNode, SyntaxNodeType } from '../ast'; import { TraversePath } from './traverse'; export type VisitListener<T extends SyntaxNode = SyntaxNode> = (path: TraversePath<T>) => void; export type VisitHandlers = { [K in SyntaxNodeType]?: VisitListener<LookUp<SyntaxNode, K>>; } & { [K in SyntaxNodeType as `exit${K}`]?: VisitListener<LookUp<SyntaxNode, K>>; } & { enter?: VisitListener<SyntaxNode>; exit?: VisitListener<SyntaxNode>; }; export declare const visit: <T extends SyntaxNode>(ast: T, handlers: VisitHandlers) => void; export declare const visitNodes: <T extends SyntaxNode = SyntaxNode>(ast: SyntaxNode, callback: (p: TraversePath) => boolean) => T[];