32 lines
578 B
C
32 lines
578 B
C
#ifndef RZ_PROGRAM_H
|
|
#define RZ_PROGRAM_H
|
|
|
|
#include "commons.h"
|
|
#include "opcodes.h"
|
|
|
|
struct value;
|
|
|
|
typedef struct {
|
|
size_t size;
|
|
size_t cap;
|
|
Opcode* ops;
|
|
param_t* params;
|
|
|
|
struct {
|
|
size_t size;
|
|
size_t cap;
|
|
struct value** data;
|
|
} values;
|
|
|
|
} program_t;
|
|
|
|
void program_init(program_t* program);
|
|
void program_free(program_t* program);
|
|
|
|
size_t program_push_instr(program_t* program, Opcode op, param_t param);
|
|
size_t program_push_new_value(program_t* program, struct value* value);
|
|
|
|
size_t program_str(program_t* program, char* buffer, size_t size);
|
|
|
|
#endif
|