32 lines
529 B
C
32 lines
529 B
C
|
#ifndef RZ_MOD_H
|
||
|
#define RZ_MOD_H
|
||
|
|
||
|
#include "commons.h"
|
||
|
#include "opcodes.h"
|
||
|
#include "value.h"
|
||
|
|
||
|
typedef struct {
|
||
|
struct {
|
||
|
size_t size;
|
||
|
size_t cap;
|
||
|
Opcode* ops;
|
||
|
param_t* params;
|
||
|
} program;
|
||
|
|
||
|
struct {
|
||
|
size_t size;
|
||
|
size_t cap;
|
||
|
value_t** data;
|
||
|
} values;
|
||
|
} mod_t;
|
||
|
|
||
|
void mod_init(mod_t* mod);
|
||
|
void mod_free(mod_t* mod);
|
||
|
|
||
|
void mod_push_instr(mod_t* mod, Opcode op, param_t param);
|
||
|
size_t mod_str(mod_t* mod, char* buffer, size_t size);
|
||
|
|
||
|
size_t mod_push_new_value(mod_t* mod, value_t* value);
|
||
|
|
||
|
#endif
|