UNPKG

@bitloops/bl-transpiler

Version:
41 lines 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExecuteNode = 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 ExecuteNode extends IntermediateASTNode_js_1.IntermediateASTNode { static classNodeName = 'execute'; constructor(metadata) { super(mappings_js_1.BitloopsTypesMapping.TExecute, metadata, ExecuteNode.classNodeName); } getStatements() { const statementList = this.getChildNodeByType(mappings_js_1.BitloopsTypesMapping.TStatements); return statementList.statements; } getStatementList() { return this.getChildNodeByType(mappings_js_1.BitloopsTypesMapping.TStatements); } getParameter() { const parameterNode = this.getChildNodeByType(mappings_js_1.BitloopsTypesMapping.TParameter); return parameterNode; } getReturnOkErrorTypeNodes() { const returnOkErrorTypeNode = this.getChildNodeByType(mappings_js_1.BitloopsTypesMapping.TOkErrorReturnType); return [returnOkErrorTypeNode]; } addToSymbolTable(symbolTableManager) { const initialSymbolTable = symbolTableManager.getSymbolTable(); symbolTableManager.createSymbolTableChildScope(SymbolTableManager_js_1.SymbolTableManager.SCOPE_NAMES.EXECUTE, this); const executeParameter = this.getParameter(); if (executeParameter) { symbolTableManager.addMetadataContext(executeParameter.getIdentifier()); executeParameter.addToSymbolTable(symbolTableManager); } const statementList = this.getStatementList(); statementList.addToSymbolTable(symbolTableManager); symbolTableManager.setCurrentSymbolTable(initialSymbolTable); } } exports.ExecuteNode = ExecuteNode; //# sourceMappingURL=ExecuteNode.js.map