UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

42 lines (40 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProcessStatementsHelper = void 0; const ts_utils_1 = require("@neo-one/ts-utils"); const Helper_1 = require("../Helper"); class ProcessStatementsHelper extends Helper_1.Helper { constructor({ createScope }) { super(); this.createScope = createScope; } emit(sb, node, options) { if (this.createScope) { sb.withScope(node, options, (innerOptions) => { this.emitStatements(sb, node, innerOptions); }); } else { this.emitStatements(sb, node, options); } } emitStatements(sb, node, options) { ts_utils_1.tsUtils.statement.getFunctions(node).forEach((func) => { const name = ts_utils_1.tsUtils.node.getName(func); if (name !== undefined) { sb.scope.add(name); } }); ts_utils_1.tsUtils.statement.getVariableDeclarations(node).forEach((decl) => { const name = ts_utils_1.tsUtils.node.getName(decl); if (name !== undefined) { sb.scope.add(name); } }); ts_utils_1.tsUtils.statement.getStatements(node).forEach((statement) => { sb.visit(statement, sb.noValueOptions(options)); }); } } exports.ProcessStatementsHelper = ProcessStatementsHelper; //# sourceMappingURL=ProcessStatementsHelper.js.map