#pragma once #include "report.h" #include "resolve.h" #include #include #include typedef struct HeaderBuilder HeaderBuilder; HeaderBuilder* header_builder_new(void); void header_builder_free(HeaderBuilder* builder); void header_builder_add_global_sym( HeaderBuilder* builder, char* ident, Loc loc, uint16_t ip); void header_builder_add_extern_sym( HeaderBuilder* builder, size_t id, char* ident); void header_builder_add_extern_ref( HeaderBuilder* builder, size_t id, uint16_t ip); int header_builder_resolve_global_syms( HeaderBuilder* builder, IdentResolver* resolver, Reporter* rep); int header_builder_write(const HeaderBuilder* builder, FILE* fp, size_t* total_written, const char* filename); void header_builder_print(const HeaderBuilder* builder);