UNPKG

@bitloops/bl-transpiler

Version:
38 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventHandleNode = void 0; const mappings_js_1 = require("../../../../helpers/mappings.js"); const SymbolTableManager_js_1 = require("../../../../semantic-analysis/type-inference/SymbolTableManager.js"); const IntermediateASTNode_js_1 = require("./IntermediateASTNode.js"); class EventHandleNode extends IntermediateASTNode_js_1.IntermediateASTNode { static NAME = 'handle'; constructor(metadata) { super(mappings_js_1.BitloopsTypesMapping.TEventHandlerHandleMethod, metadata, EventHandleNode.NAME); } getStatements() { const statementList = this.getChildNodeByType(mappings_js_1.BitloopsTypesMapping.TStatements); return statementList.statements; } getParameters() { const parameterNode = this.getChildrenNodesByType(mappings_js_1.BitloopsTypesMapping.TParameter); return parameterNode; } getParameter() { return this.getChildNodeByType(mappings_js_1.BitloopsTypesMapping.TParameter); } getStatementList() { return this.getChildNodeByType(mappings_js_1.BitloopsTypesMapping.TStatements); } addToSymbolTable(symbolTableManager) { const initialSymbolTable = symbolTableManager.getSymbolTable(); symbolTableManager.createSymbolTableChildScope(SymbolTableManager_js_1.SymbolTableManager.SCOPE_NAMES.HANDLE, this); const parameter = this.getParameter(); symbolTableManager.addMetadataContext(parameter.getIdentifier()); parameter.addToSymbolTable(symbolTableManager); const statementList = this.getStatementList(); statementList.addToSymbolTable(symbolTableManager); symbolTableManager.setCurrentSymbolTable(initialSymbolTable); } } exports.EventHandleNode = EventHandleNode; //# sourceMappingURL=EventHandleNode.js.map