eolian: less code repeating

This commit is contained in:
Daniel Kolesa 2014-06-20 15:46:00 +01:00
parent efcdfec94f
commit 4dcd45b010
1 changed files with 12 additions and 25 deletions

View File

@ -9,6 +9,13 @@
eo_lexer_syntax_error(ls, "double " msg); \ eo_lexer_syntax_error(ls, "double " msg); \
has_##var = EINA_TRUE; has_##var = EINA_TRUE;
#define PARSE_SECTION \
int line; \
eo_lexer_get(ls); \
line = ls->line_number; \
check_next(ls, '{'); \
while (ls->t.token != '}')
static void static void
error_expected(Eo_Lexer *ls, int token) error_expected(Eo_Lexer *ls, int token)
{ {
@ -409,11 +416,7 @@ end:
static void static void
parse_params(Eo_Lexer *ls, Eina_Bool allow_inout) parse_params(Eo_Lexer *ls, Eina_Bool allow_inout)
{ {
int line; PARSE_SECTION
eo_lexer_get(ls);
line = ls->line_number;
check_next(ls, '{');
while (ls->t.token != '}')
{ {
parse_param(ls, allow_inout); parse_param(ls, allow_inout);
ls->tmp.params = eina_list_append(ls->tmp.params, ls->tmp.param); ls->tmp.params = eina_list_append(ls->tmp.params, ls->tmp.param);
@ -676,11 +679,7 @@ parse_event(Eo_Lexer *ls)
static void static void
parse_constructors(Eo_Lexer *ls) parse_constructors(Eo_Lexer *ls)
{ {
int line; PARSE_SECTION
eo_lexer_get(ls);
line = ls->line_number;
check_next(ls, '{');
while (ls->t.token != '}')
{ {
parse_method(ls, EINA_TRUE); parse_method(ls, EINA_TRUE);
ls->tmp.kls->constructors = eina_list_append(ls->tmp.kls->constructors, ls->tmp.kls->constructors = eina_list_append(ls->tmp.kls->constructors,
@ -693,11 +692,7 @@ parse_constructors(Eo_Lexer *ls)
static void static void
parse_methods(Eo_Lexer *ls) parse_methods(Eo_Lexer *ls)
{ {
int line; PARSE_SECTION
eo_lexer_get(ls);
line = ls->line_number;
check_next(ls, '{');
while (ls->t.token != '}')
{ {
parse_method(ls, EINA_FALSE); parse_method(ls, EINA_FALSE);
ls->tmp.kls->methods = eina_list_append(ls->tmp.kls->methods, ls->tmp.kls->methods = eina_list_append(ls->tmp.kls->methods,
@ -710,11 +705,7 @@ parse_methods(Eo_Lexer *ls)
static void static void
parse_properties(Eo_Lexer *ls) parse_properties(Eo_Lexer *ls)
{ {
int line; PARSE_SECTION
eo_lexer_get(ls);
line = ls->line_number;
check_next(ls, '{');
while (ls->t.token != '}')
{ {
parse_property(ls); parse_property(ls);
ls->tmp.kls->properties = eina_list_append(ls->tmp.kls->properties, ls->tmp.kls->properties = eina_list_append(ls->tmp.kls->properties,
@ -727,11 +718,7 @@ parse_properties(Eo_Lexer *ls)
static void static void
parse_implements(Eo_Lexer *ls, Eina_Bool iface) parse_implements(Eo_Lexer *ls, Eina_Bool iface)
{ {
int line; PARSE_SECTION
eo_lexer_get(ls);
line = ls->line_number;
check_next(ls, '{');
while (ls->t.token != '}')
{ {
parse_implement(ls, iface); parse_implement(ls, iface);
ls->tmp.kls->implements = eina_list_append(ls->tmp.kls->implements, ls->tmp.kls->implements = eina_list_append(ls->tmp.kls->implements,