UNPKG

solidity-antlr4

Version:

Solidity Lang Lexer and Parser by official ANTLR4 grammar

27 lines (26 loc) 628 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.visitNodes = exports.visit = void 0; var _traverse = require("./traverse.cjs"); const visit = (ast, handlers) => { (0, _traverse.traverse)(ast, p => { const nodeType = p.node.type; handlers.enter?.(p); handlers[nodeType]?.(p); handlers[`exit${nodeType}`]?.(p); handlers.exit?.(p); }); }; exports.visit = visit; const visitNodes = (ast, callback) => { const nodes = []; visit(ast, { enter(path) { if (callback(path)) nodes.push(path.node); } }); return nodes; }; exports.visitNodes = visitNodes;