#ifndef BDL_CHUNK_H #define BDL_CHUNK_H #include "darray.h" #include "string_view.h" typedef struct Object Object; typedef struct LineInfo { size_t line; size_t col; } LineInfo; typedef struct Chunk { u8 *code; Object *constants; LineInfo *lines; char *name; } Chunk; #define NEW_CHUNK(NAME) chunk_init((StringView){(NAME), sizeof(NAME)}) Chunk * chunk_init(StringView name); void add_code(Chunk *chunk, u8 byte, size_t line, size_t col); size_t add_constant(Chunk *chunk, Object obj); void chunk_free(Chunk *chunk); #endif // BDL_CHUNK_H