forked from enlightenment/efl
eolian: parsing for @auto and @empty
This commit is contained in:
parent
616b58dd39
commit
9f232da400
|
@ -1505,11 +1505,27 @@ parse_implement(Eo_Lexer *ls, Eina_Bool iface)
|
|||
check_next(ls, ';');
|
||||
return;
|
||||
}
|
||||
/* . parsing prepared for more tags */
|
||||
else if (ls->t.kw == KW_at_virtual)// || ls->t.token == '.')
|
||||
switch (ls->t.kw)
|
||||
{
|
||||
impl->is_virtual = ls->t.kw == KW_at_virtual;
|
||||
if (impl->is_virtual) eo_lexer_get(ls);
|
||||
case KW_at_virtual:
|
||||
impl->is_virtual = EINA_TRUE;
|
||||
eo_lexer_get(ls);
|
||||
break;
|
||||
case KW_at_auto:
|
||||
impl->is_auto = EINA_TRUE;
|
||||
eo_lexer_get(ls);
|
||||
break;
|
||||
case KW_at_empty:
|
||||
impl->is_empty = EINA_TRUE;
|
||||
eo_lexer_get(ls);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (ls->t.token == '.')
|
||||
{
|
||||
if (!impl->is_virtual && !impl->is_auto && !impl->is_empty)
|
||||
goto fullclass;
|
||||
check_next(ls, '.');
|
||||
if ((ls->t.token != TOK_VALUE) || (ls->t.kw == KW_get || ls->t.kw == KW_set))
|
||||
eo_lexer_syntax_error(ls, "name expected");
|
||||
|
@ -1539,6 +1555,7 @@ parse_implement(Eo_Lexer *ls, Eina_Bool iface)
|
|||
check_next(ls, ';');
|
||||
return;
|
||||
}
|
||||
fullclass:
|
||||
if ((ls->t.token != TOK_VALUE) || (ls->t.kw == KW_get || ls->t.kw == KW_set))
|
||||
eo_lexer_syntax_error(ls, "class name expected");
|
||||
buf = push_strbuf(ls);
|
||||
|
|
|
@ -164,6 +164,8 @@ struct _Eolian_Implement
|
|||
Eina_Bool is_prop_set :1;
|
||||
Eina_Bool is_class_ctor :1;
|
||||
Eina_Bool is_class_dtor :1;
|
||||
Eina_Bool is_auto: 1;
|
||||
Eina_Bool is_empty: 1;
|
||||
};
|
||||
|
||||
struct _Eolian_Event
|
||||
|
|
Loading…
Reference in New Issue