UNPKG

@bitloops/bl-transpiler

Version:
34 lines 1.6 kB
import { BitloopsTypesMapping } from '../../../../helpers/mappings.js'; import { SymbolTableManager } from '../../../../semantic-analysis/type-inference/SymbolTableManager.js'; import { IntermediateASTNode } from './IntermediateASTNode.js'; export class EventHandleNode extends IntermediateASTNode { static NAME = 'handle'; constructor(metadata) { super(BitloopsTypesMapping.TEventHandlerHandleMethod, metadata, EventHandleNode.NAME); } getStatements() { const statementList = this.getChildNodeByType(BitloopsTypesMapping.TStatements); return statementList.statements; } getParameters() { const parameterNode = this.getChildrenNodesByType(BitloopsTypesMapping.TParameter); return parameterNode; } getParameter() { return this.getChildNodeByType(BitloopsTypesMapping.TParameter); } getStatementList() { return this.getChildNodeByType(BitloopsTypesMapping.TStatements); } addToSymbolTable(symbolTableManager) { const initialSymbolTable = symbolTableManager.getSymbolTable(); symbolTableManager.createSymbolTableChildScope(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); } } //# sourceMappingURL=EventHandleNode.js.map