eolian: preliminary parsing of doc syntax

This commit is contained in:
Daniel Kolesa 2015-06-03 11:11:12 +01:00
parent 25822405a4
commit a6fbe7b6a5
1 changed files with 14 additions and 0 deletions

View File

@ -481,6 +481,7 @@ parse_struct(Eo_Lexer *ls, const char *name, Eina_Bool is_extern,
def->comment = eina_stringshare_ref(ls->t.value.s); def->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
while (ls->t.token != '}') while (ls->t.token != '}')
{ {
const char *fname; const char *fname;
@ -507,6 +508,7 @@ parse_struct(Eo_Lexer *ls, const char *name, Eina_Bool is_extern,
fdef->comment = eina_stringshare_ref(ls->t.value.s); fdef->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
} }
check_match(ls, '}', '{', bline, bcolumn); check_match(ls, '}', '{', bline, bcolumn);
FILL_BASE(def->base, ls, line, column); FILL_BASE(def->base, ls, line, column);
@ -540,6 +542,7 @@ parse_enum(Eo_Lexer *ls, const char *name, Eina_Bool is_extern,
def->comment = eina_stringshare_ref(ls->t.value.s); def->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
if (ls->t.token == TOK_VALUE && ls->t.kw == KW_legacy) if (ls->t.token == TOK_VALUE && ls->t.kw == KW_legacy)
{ {
if (eo_lexer_lookahead(ls) == ':') if (eo_lexer_lookahead(ls) == ':')
@ -624,6 +627,7 @@ parse_enum(Eo_Lexer *ls, const char *name, Eina_Bool is_extern,
fdef->comment = eina_stringshare_ref(ls->t.value.s); fdef->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
if (!want_next) if (!want_next)
break; break;
} }
@ -882,6 +886,7 @@ parse_typedef(Eo_Lexer *ls)
def->comment = eina_stringshare_ref(ls->t.value.s); def->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
return def; return def;
} }
@ -933,6 +938,7 @@ parse_variable(Eo_Lexer *ls, Eina_Bool global)
def->comment = eina_stringshare_ref(ls->t.value.s); def->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
return def; return def;
} }
@ -976,6 +982,7 @@ parse_return(Eo_Lexer *ls, Eo_Ret_Def *ret, Eina_Bool allow_void)
ret->comment = eina_stringshare_ref(ls->t.value.s); ret->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
} }
static void static void
@ -1057,6 +1064,7 @@ end:
par->description = eina_stringshare_ref(ls->t.value.s); par->description = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
} }
static void static void
@ -1121,6 +1129,7 @@ parse_accessor(Eo_Lexer *ls, Eolian_Function *prop)
prop->set_description = eina_stringshare_ref(ls->t.value.s); prop->set_description = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
for (;;) switch (ls->t.kw) for (;;) switch (ls->t.kw)
{ {
case KW_return: case KW_return:
@ -1250,6 +1259,7 @@ body:
prop->common_description = eina_stringshare_ref(ls->t.value.s); prop->common_description = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
for (;;) switch (ls->t.kw) for (;;) switch (ls->t.kw)
{ {
case KW_get: case KW_get:
@ -1335,6 +1345,7 @@ body:
meth->common_description = eina_stringshare_ref(ls->t.value.s); meth->common_description = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
for (;;) switch (ls->t.kw) for (;;) switch (ls->t.kw)
{ {
case KW_return: case KW_return:
@ -1587,6 +1598,7 @@ parse_event(Eo_Lexer *ls)
ev->comment = eina_stringshare_ref(ls->t.value.s); ev->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
ev->klass = ls->tmp.kls; ev->klass = ls->tmp.kls;
} }
@ -1663,6 +1675,7 @@ parse_class_body(Eo_Lexer *ls, Eolian_Class_Type type)
ls->tmp.kls->description = eina_stringshare_ref(ls->t.value.s); ls->tmp.kls->description = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
if (type == EOLIAN_CLASS_INTERFACE) if (type == EOLIAN_CLASS_INTERFACE)
{ {
ls->tmp.kls->data_type = eina_stringshare_add("null"); ls->tmp.kls->data_type = eina_stringshare_add("null");
@ -1931,6 +1944,7 @@ parse_unit(Eo_Lexer *ls, Eina_Bool eot)
def->comment = eina_stringshare_ref(ls->t.value.s); def->comment = eina_stringshare_ref(ls->t.value.s);
eo_lexer_get(ls); eo_lexer_get(ls);
} }
test_next(ls, TOK_DOC);
FILL_BASE(def->base, ls, line, col); FILL_BASE(def->base, ls, line, col);
database_struct_add(def); database_struct_add(def);
pop_type(ls); pop_type(ls);