solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
15 lines (14 loc) • 725 B
TypeScript
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[];