vc3/asm/build_header.h
2025-04-04 00:27:29 +02:00

26 lines
818 B
C

#pragma once
#include "report.h"
#include "resolve.h"
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
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);