Add first encoding pass

First pass collects all the symbols and interprets number and register
tokens into usable data for the later passes.
This commit is contained in:
2025-04-15 00:01:40 +02:00
parent dcf90b72e0
commit 68dcd9dcce
2 changed files with 231 additions and 0 deletions

20
src/encoder/encoder.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef INCLUDE_ENCODER_ENCODER_H_
#define INCLUDE_ENCODER_ENCODER_H_
#include "symbols.h"
typedef struct encoder {
symbol_table_t *symbols;
} encoder_t;
error_t *encoder_alloc(encoder_t **encoder);
error_t *encoder_encode(encoder_t *encoder, ast_node_t *ast);
void encoder_free(encoder_t *encoder);
extern error_t *const err_encoder_invalid_register;
extern error_t *const err_encoder_number_overflow;
extern error_t *const err_encoder_invalid_number_format;
extern error_t *const err_encoder_invalid_size_suffix;
extern error_t *const err_encoder_unknown_symbol_reference;
#endif // INCLUDE_ENCODER_ENCODER_H_