@bitloops/bl-transpiler
Version:
The one and only Bitloops Language transpiler
38 lines • 1.87 kB
JavaScript
;
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