rendered paste body#include <Evas.h>#include <Eet.h>#include "Etk_Cc.h"#define NEWD(str, typ) \ eet_data_descriptor_new(str, sizeof(typ), \ (void *(*) (void *))evas_list_next, \ (void *(*) (void *, void *))evas_list_append, \ (void *(*) (void *))evas_list_data, \ (void *(*) (void *))evas_list_free, \ (void (*) (void *, int (*) (void *, const char *, void *, void *), void *))evas_hash_foreach, \ (void *(*) (void *, const char *, void *))evas_hash_add, \ (void (*) (void *))evas_hash_free)#define FREED(eed) \ if (eed) \ { \ eet_data_descriptor_free((eed)); \ (eed) = NULL; \ }#define ETK_CC_WIDGET_PROP_NEWI(str, it, type) \ EET_DATA_DESCRIPTOR_ADD_BASIC(_etk_cc_widget_prop_edd, Etk_Cc_Widget_Property, str, it, type)#define ETK_CC_WIDGET_NEWI(str, it, type) \ EET_DATA_DESCRIPTOR_ADD_BASIC(_etk_cc_widget_edd, Etk_Cc_Widget, str, it, type)#define ETK_CC_WIDGET_NEWH(str, it, type) \ EET_DATA_DESCRIPTOR_ADD_HASH(_etk_cc_widget_edd, Etk_Cc_Widget, str, it, type)#define ETK_CC_WIDGETS_NEWL(str, it, type) \ EET_DATA_DESCRIPTOR_ADD_LIST(_etk_cc_widgets_edd, Etk_Cc, str, it, type)extern Evas_List *widgets;static Eet_Data_Descriptor *_etk_cc_widget_prop_edd = NULL;static Eet_Data_Descriptor *_etk_cc_widget_edd = NULL;static Eet_Data_Descriptor *_etk_cc_widgets_edd = NULL;typedef struct _Etk_Cc Etk_Cc;struct _Etk_Cc{ Evas_List *widgets;};int main(int argc, char **argv){ etk_cc_init(); eet_init(); yyparse(); _etk_cc_widget_prop_edd = NEWD("Etk_Cc_Widget_Property", Etk_Cc_Widget_Property); ETK_CC_WIDGET_PROP_NEWI("vl", value, EET_T_STRING); ETK_CC_WIDGET_PROP_NEWI("tp", type, EET_T_INT); _etk_cc_widget_edd = NEWD("Etk_Cc_Widget", Etk_Cc_Widget); ETK_CC_WIDGET_NEWI("tp", type, EET_T_STRING); ETK_CC_WIDGET_NEWI("nm", name, EET_T_STRING); ETK_CC_WIDGET_NEWI("pt", parent, EET_T_STRING); ETK_CC_WIDGET_NEWH("pr", props, _etk_cc_widget_prop_edd); _etk_cc_widgets_edd = NEWD("Etk_Cc", Etk_Cc); ETK_CC_WIDGETS_NEWL("ws", widgets, _etk_cc_widgets_edd); { Eet_File *ef; char *buf = "hello_world.ecc"; int ret; Etk_Cc *etk_cc; ef = eet_open(buf, EET_FILE_MODE_WRITE); if (!ef) return 0; etk_cc = calloc(1, sizeof(etk_cc)); etk_cc->widgets = widgets; ret = eet_data_write(ef, _etk_cc_widgets_edd, "etk/widgets", etk_cc, 1); if (!ret) printf("Problem saving data!"); eet_close(ef); } eet_shutdown(); return 0; }