#pragma once

#include "compiler/ast-tree.h"

typedef enum BBAOperation {
  BBA_OPERATION_ASSIGN,

  BBA_OPERATION_CAST,
  // BBA_OPERATION_TYPE_OF,
  // BBA_OPERATION_IMPORT,
  // BBA_OPERATION_IS_COMPTIME,
  BBA_OPERATION_STACK_ALLOC,
  BBA_OPERATION_HEAP_ALLOC,
  BBA_OPERATION_NEG,
  BBA_OPERATION_ADD,
  BBA_OPERATION_SUB,
  BBA_OPERATION_MUL,
  BBA_OPERATION_DIV,
  BBA_OPERATION_MOD,
  BBA_OPERATION_EQUAL,
  BBA_OPERATION_NOT_EQUAL,
  BBA_OPERATION_GREATER,
  BBA_OPERATION_SMALLER,
  BBA_OPERATION_GREATER_OR_EQUAL,
  BBA_OPERATION_SMALLER_OR_EQUAL,
  BBA_OPERATION_PUTC,

  BBA_OPERATION_CALL,
}BBAOperation;

typedef struct BBAInstruction {

} BBAInstruction;

typedef struct BBABlock {
} BBABlock;

typedef struct BBA {
} BBA;