История изменений
Исправление MOPKOBKA, (текущая версия) :
Ваш ход, как научить php добавлять к структурам метаинформацию?
Там есть атрибуты, просто
#[MoyaInfa]
private int $field;
Но в С я действую по другому, например в метапроге для каждого типа свой цвет
#define metaprog_type_x \
x(INT, "Целое", COLOR_BLUE) \
x(BOOL, "Да/Нет", COLOR_GREEN) \
x(FLOAT, "Дробное", COLOR_ORANGE) \
x(STRING, "Строка", COLOR_MAGENTA) \
x(VOID, "Пустота", COLOR_GRAY)
enum metaprog_type {
#define x(c, name, color) METAPROG_TYPE_ ## c,
metaprog_type_x
#undef x
};
struct {
const char *name;
enum color color;
} metaprog_type_info[] = {
#define x(c, name, color) {name, color},
metaprog_type_x
#undef x
};
void print_type(enum metaprog_type t)
{
printf("Имя %s, цвет %s\n", metaprog_type_info[t].name, color_name(metaprog_type_info[t].color));
}
Исправление MOPKOBKA, :
Ваш ход, как научить php добавлять к структурам метаинформацию?
Там есть атрибуты, просто
#[MoyaInfa]
private int $field;
Но в С я действую по другому, например в метапроге для каждого типа свой цвет
#define metaprog_type_x \
x(INT, "Целое", COLOR_BLUE) \
x(BOOL, "Да/Нет", COLOR_GREEN) \
x(FLOAT, "Дробное", COLOR_ORANGE)
enum metaprog_type {
#define x(c, name, color) METAPROG_TYPE_ ## c,
metaprog_type_x
#undef x
};
struct {
const char *name;
enum color color;
} metaprog_type_info[] = {
#define x(c, name, color) {name, color},
metaprog_type_x
#undef x
};
void print_type(enum metaprog_type t)
{
printf("Имя %s, цвет %s\n", metaprog_type_info[t].name, color_name(metaprog_type_info[t].color));
}
Исправление MOPKOBKA, :
Ваш ход, как научить php добавлять к структурам метаинформацию?
Там есть атрибуты, просто
#[MoyaInfa]
private int $field;
Но в С я действую по другому, например в метапроге для каждого типа свой цвет
#define metaprog_type_x \
x(INT, "Целое", COLOR_BLUE) \
x(BOOL, "Да/Нет", COLOR_GREEN) \
x(FLOAT, "Дробное", COLOR_ORANGE)
enum metaprog_type {
#define x(c, name, color) METAPROG_TYPE_ ## c
metaprog_type_x
#undef x
};
struct {
const char *name;
enum color color;
} metaprog_type_info[] = {
#define x(c, name, color) {name, color},
metaprog_type_x
#undef x
};
void print_type(enum metaprog_type t)
{
printf("Имя %s, цвет %s\n", metaprog_type_info[t].name, color_name(metaprog_type_info[t].color));
}
Исправление MOPKOBKA, :
Ваш ход, как научить php добавлять к структурам метаинформацию?
Там есть атрибуты, просто
#[MoyaInfa]
private int $field;
Но в С я действую по другому, например в метапроге для каждого типа свой цвет
#define metaprog_type_x \
x(INT, "Целое", COLOR_BLUE) \
x(BOOL, "Да/Нет", COLOR_GREEN) \
x(FLOAT, "Дробное", COLOR_ORANGE)
enum metaprog_type {
#define x(c, name, color) METAPROG_TYPE_ ## c
metaprog_type_x
#undef x
};
struct {
const char *name;
enum color color;
} metaprog_type_info[] = {
#define x(c, name, color) {name, color},
metaprog_type_x
#undef x
};
void print_type(enum metaprog_type t)
{
printf("Имя %s, цвет %s\n", metaprog_type_info[t].name, color_name(metaprog_type_info[t].color));
}
Исходная версия MOPKOBKA, :
Ваш ход, как научить php добавлять к структурам метаинформацию?
Там есть атрибуты, просто
#[MoyaInfa]
private int $field;
Но в С я действую по другому, например в метапроге для каждого типа свой цвет
#define metaprog_type_x \
x(INT, "Целое", COLOR_BLUE) \
x(BOOL, "Да/Нет", COLOR_GREEN) \
x(FLOAT, "Дробное", COLOR_ORANGE)
enum metaprog_type {
#define x(c, name, color) METAPROG_TYPE_ ## c
metaprog_type_x
#undef x
};
struct {
const char *name;
enum color color;
} metaprog_type_info[] = {
#define x(c, name, color) {name, color},
metaprog_type_x
#undef x
};