From 12b45f728905863adb2e727d6c9c406374675bea Mon Sep 17 00:00:00 2001 From: A404M Date: Sat, 9 Aug 2025 06:11:47 +0330 Subject: some clean up and attempts to add bba --- src/backend/bba.c | 17 +++++++++++++++++ src/backend/bba.h | 8 ++++++++ 2 files changed, 25 insertions(+) (limited to 'src/backend') diff --git a/src/backend/bba.c b/src/backend/bba.c index fe156c6..64c2984 100644 --- a/src/backend/bba.c +++ b/src/backend/bba.c @@ -1 +1,18 @@ #include "bba.h" + +BBA makeBBA(AstTreeRoots roots) { + BBA bba; + + for (size_t i = 0; i < roots.size; ++i) { + makeBBABack(&bba, roots.data[i]); + } + + return bba; +} + +bool makeBBABack(BBA *bba, AstTreeRoot *root){ + for(size_t i = 0;i < root->variables.size;++i){ + AstTreeVariable *variable = root->variables.data[i]; + + } +} diff --git a/src/backend/bba.h b/src/backend/bba.h index 2e77d78..2fc5741 100644 --- a/src/backend/bba.h +++ b/src/backend/bba.h @@ -55,6 +55,7 @@ typedef enum BBAOperation { typedef union BBAInstructionValue { struct BBAInstruction *instruction; + struct BBABlock *block; u8 u8; i8 i8; @@ -87,4 +88,11 @@ typedef struct BBABlock { } BBABlock; typedef struct BBA { + BBAInstructionValue *globals; + size_t globals_size; + BBABlock blocks; + size_t blocks_size; } BBA; + +BBA makeBBA(AstTreeRoots roots); +bool makeBBABack(BBA *bba, AstTreeRoot *root); -- cgit v1.2.3