forked from enlightenment/efl
eolian: add some stuff into eo_definitions needed for the new parser and temporarily adjust the lexer for it
This commit is contained in:
parent
0d417e6ebf
commit
2056b99e85
|
@ -8,7 +8,7 @@ eo_definitions_ret_free(Eo_Ret_Def *ret)
|
|||
{
|
||||
if (ret->type) eina_stringshare_del(ret->type);
|
||||
if (ret->comment) eina_stringshare_del(ret->comment);
|
||||
if (ret->dflt_ret_val) free(ret->dflt_ret_val);
|
||||
if (ret->dflt_ret_val) eina_stringshare_del(ret->dflt_ret_val);
|
||||
free(ret);
|
||||
}
|
||||
|
||||
|
@ -127,7 +127,6 @@ void
|
|||
eo_definitions_class_def_free(Eo_Class_Def *kls)
|
||||
{
|
||||
const char *s;
|
||||
Eina_List *l;
|
||||
Eo_Property_Def *prop;
|
||||
Eo_Method_Def *meth;
|
||||
Eo_Event_Def *sgn;
|
||||
|
@ -144,7 +143,7 @@ eo_definitions_class_def_free(Eo_Class_Def *kls)
|
|||
if (kls->data_type)
|
||||
eina_stringshare_del(kls->data_type);
|
||||
|
||||
EINA_LIST_FOREACH(kls->inherits, l, s)
|
||||
EINA_LIST_FREE(kls->inherits, s)
|
||||
if (s) eina_stringshare_del(s);
|
||||
|
||||
EINA_LIST_FREE(kls->implements, impl)
|
||||
|
@ -165,3 +164,52 @@ eo_definitions_class_def_free(Eo_Class_Def *kls)
|
|||
free(kls);
|
||||
}
|
||||
|
||||
void
|
||||
eo_definitions_temps_free(Eo_Lexer_Temps *tmp)
|
||||
{
|
||||
Eina_Strbuf *buf;
|
||||
Eo_Param_Def *par;
|
||||
const char *s;
|
||||
|
||||
EINA_LIST_FREE(tmp->str_bufs, buf)
|
||||
eina_strbuf_free(buf);
|
||||
|
||||
EINA_LIST_FREE(tmp->params, par)
|
||||
eo_definitions_param_free(par);
|
||||
|
||||
if (tmp->legacy_def)
|
||||
eina_stringshare_del(tmp->legacy_def);
|
||||
|
||||
if (tmp->kls)
|
||||
eo_definitions_class_def_free(tmp->kls);
|
||||
|
||||
if (tmp->ret_def)
|
||||
eo_definitions_ret_free(tmp->ret_def);
|
||||
|
||||
if (tmp->type_def)
|
||||
eo_definitions_type_def_free(tmp->type_def);
|
||||
|
||||
if (tmp->prop)
|
||||
eo_definitions_property_def_free(tmp->prop);
|
||||
|
||||
if (tmp->meth)
|
||||
eo_definitions_method_def_free(tmp->meth);
|
||||
|
||||
if (tmp->param)
|
||||
eo_definitions_param_free(tmp->param);
|
||||
|
||||
if (tmp->accessor)
|
||||
eo_definitions_accessor_free(tmp->accessor);
|
||||
|
||||
if (tmp->accessor_param)
|
||||
eo_definitions_accessor_param_free(tmp->accessor_param);
|
||||
|
||||
EINA_LIST_FREE(tmp->str_items, s)
|
||||
if (s) eina_stringshare_del(s);
|
||||
|
||||
if (tmp->event)
|
||||
eo_definitions_event_def_free(tmp->event);
|
||||
|
||||
if (tmp->impl)
|
||||
eo_definitions_impl_def_free(tmp->impl);
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ typedef struct _eo_ret_def
|
|||
{
|
||||
const char *type;
|
||||
const char *comment;
|
||||
char *dflt_ret_val;
|
||||
const char *dflt_ret_val;
|
||||
Eina_Bool warn_unused:1;
|
||||
} Eo_Ret_Def;
|
||||
|
||||
|
@ -73,7 +73,6 @@ typedef struct _eo_property_def
|
|||
typedef enum _eo_method_type {
|
||||
METH_REGULAR,
|
||||
METH_CONSTRUCTOR,
|
||||
METH_DESTRUCTOR,
|
||||
METH_TYPE_LAST
|
||||
} Eo_Method_Type;
|
||||
|
||||
|
@ -100,13 +99,6 @@ typedef struct _eo_event_def
|
|||
|
||||
/* IMPLEMENT */
|
||||
|
||||
typedef struct _eo_implement_legacy_param_def
|
||||
{
|
||||
const char *eo_name;
|
||||
const char *legacy_name;
|
||||
const char *comment;
|
||||
} Eo_Implement_Legacy_Param_Def;
|
||||
|
||||
typedef struct _eo_implement_def
|
||||
{
|
||||
const char *meth_name;
|
||||
|
@ -138,7 +130,28 @@ typedef struct _eo_type_def
|
|||
const char *type;
|
||||
} Eo_Type_Def;
|
||||
|
||||
/* TEMPS */
|
||||
|
||||
typedef struct _Eo_Lexer_Temps
|
||||
{
|
||||
Eina_List *str_bufs;
|
||||
Eina_List *params;
|
||||
const char *legacy_def;
|
||||
Eo_Class_Def *kls;
|
||||
Eo_Ret_Def *ret_def;
|
||||
Eo_Type_Def *type_def;
|
||||
Eo_Property_Def *prop;
|
||||
Eo_Method_Def *meth;
|
||||
Eo_Param_Def *param;
|
||||
Eo_Accessor_Def *accessor;
|
||||
Eo_Accessor_Param *accessor_param;
|
||||
Eina_List *str_items;
|
||||
Eo_Event_Def *event;
|
||||
Eo_Implement_Def *impl;
|
||||
} Eo_Lexer_Temps;
|
||||
|
||||
void eo_definitions_class_def_free(Eo_Class_Def *kls);
|
||||
void eo_definitions_type_def_free(Eo_Type_Def *type);
|
||||
void eo_definitions_temps_free(Eo_Lexer_Temps *tmp);
|
||||
|
||||
#endif /* __EO_DEFINITIONS_H__ */
|
||||
|
|
|
@ -301,7 +301,8 @@ _eo_tokenizer_return_get(Eo_Lexer *toknz, char *p)
|
|||
ret_val = malloc(end - s + 2); /* string + '\0' */
|
||||
memcpy(ret_val, s, end - s + 1);
|
||||
ret_val[end - s + 1] = '\0';
|
||||
ret->dflt_ret_val = ret_val;
|
||||
ret->dflt_ret_val = eina_stringshare_add(ret_val);
|
||||
free(ret_val);
|
||||
memset(s, ' ', end - s + 1);
|
||||
}
|
||||
*p = ';';
|
||||
|
|
|
@ -49,7 +49,6 @@ typedef struct _eo_tokenizer
|
|||
Eina_List *str_items;
|
||||
Eo_Event_Def *event;
|
||||
Eo_Implement_Def *impl;
|
||||
Eo_Implement_Legacy_Param_Def *impl_leg_param;
|
||||
int fscope;
|
||||
} tmp;
|
||||
|
||||
|
|
Loading…
Reference in New Issue