solidity-antlr4
Version:
Solidity Lang Lexer and Parser by official ANTLR4 grammar
27 lines (26 loc) • 628 B
JavaScript
;
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;