#pragma once
#include "bc_compiler.c"

void string_init    ( String * str ) {
  str -> capacity = 1000;
  str -> len = 0;
  str -> str = (u8*) malloc ( 1000 );
}

void string_destroy ( String * str ) {
  free ( str -> str );
}

void ast_to_bc ( Ast * ast ) {
  switch ( ast -> kind ) {
    default:
      assert ( false );
  }
}

void generate_bc ( Ast * ast, String * bc ) {
  // generate header

  // generate internals (constants (exp. functions), globals)
  ast_to_bc ( ast );

  // header
  // constants to bc
  // globals to bc
  // EP
}