Sha256: 1f75f689d0617fad64e5b5d134d79e3c560f98835e246566e78bf36687d18190
Contents?: true
Size: 1.29 KB
Versions: 45
Compression:
Stored size: 1.29 KB
Contents
/** * @fileoverview The event generator for AST nodes. * @author Toru Nagashima */ "use strict"; //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ /** * The event generator for AST nodes. * This implements below interface. * * ```ts * interface EventGenerator { * emitter: EventEmitter; * enterNode(node: ASTNode): void; * leaveNode(node: ASTNode): void; * } * ``` * * @param {EventEmitter} emitter - An event emitter which is the destination of events. * @returns {NodeEventGenerator} new instance. */ function NodeEventGenerator(emitter) { this.emitter = emitter; } NodeEventGenerator.prototype = { constructor: NodeEventGenerator, /** * Emits an event of entering AST node. * @param {ASTNode} node - A node which was entered. * @returns {void} */ enterNode: function enterNode(node) { this.emitter.emit(node.type, node); }, /** * Emits an event of leaving AST node. * @param {ASTNode} node - A node which was left. * @returns {void} */ leaveNode: function leaveNode(node) { this.emitter.emit(node.type + ":exit", node); } }; module.exports = NodeEventGenerator;
Version data entries
45 entries across 45 versions & 2 rubygems