2023-12-09 17:24:41 +00:00
|
|
|
#ifndef RZ_TYSY_H
|
|
|
|
#define RZ_TYSY_H
|
|
|
|
|
|
|
|
#include "commons.h"
|
|
|
|
#include "value.h"
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
type_t* types[RZ_MAX_TYPES];
|
|
|
|
char* names[RZ_MAX_TYPES];
|
|
|
|
size_t size;
|
|
|
|
} tysy_t;
|
|
|
|
|
|
|
|
void tysy_init(tysy_t* tysy);
|
|
|
|
void tysy_free(tysy_t* tysy);
|
|
|
|
|
|
|
|
void tysy_register_new_type(tysy_t* tysy, char* name, type_t* type);
|
|
|
|
type_t* tysy_try_find_type(tysy_t* tysy, char* name);
|
|
|
|
|
2023-12-11 17:01:22 +00:00
|
|
|
value_t* tysy_new_num(tysy_t* tysy, double value, int line);
|
|
|
|
value_t* tysy_new_bool(tysy_t* tysy, int value, int line);
|
|
|
|
value_t* tysy_new_str(tysy_t* tysy, char* value, int line);
|
2023-12-20 19:54:58 +00:00
|
|
|
value_t* tysy_new_fun(tysy_t* tysy, fun_t* fun, int line);
|
2023-12-23 20:17:12 +00:00
|
|
|
value_t* tysy_new_ref(tysy_t* tysy, size_t ref, int line);
|
2023-12-09 17:24:41 +00:00
|
|
|
|
|
|
|
#endif
|