eolian: disable parsing of old style docs
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Thu, 3 Sep 2015 14:08:08 +0000 (15:08 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Thu, 3 Sep 2015 14:08:08 +0000 (15:08 +0100)
src/lib/eolian/eo_lexer.c
src/lib/eolian/eo_lexer.h
src/lib/eolian/eo_parser.c

index be15ee0..8b0d79c 100644 (file)
@@ -50,7 +50,7 @@ static const char * const tokens[] =
 {
    "==", "!=", ">=", "<=", "&&", "||", "<<", ">>",
 
-   "<comment>", "<doc>", "<string>", "<char>", "<number>", "<value>",
+   "<doc>", "<string>", "<char>", "<number>", "<value>",
 
    KEYWORDS
 };
@@ -115,7 +115,7 @@ init_hash(void)
    unsigned int i, u;
    if (keyword_map) return;
    keyword_map = eina_hash_string_superfast_new(NULL);
-   for (i = u = 14; i < (sizeof(tokens) / sizeof(const char*)); ++i)
+   for (i = u = 13; i < (sizeof(tokens) / sizeof(const char*)); ++i)
      {
          eina_hash_add(keyword_map, tokens[i], (void*)(size_t)(i - u + 1));
      }
@@ -192,7 +192,7 @@ should_skip_star(Eo_Lexer *ls, int ccol, Eina_Bool *term)
 }
 
 static void
-read_long_comment(Eo_Lexer *ls, Eo_Token *tok, int ccol)
+read_long_comment(Eo_Lexer *ls, int ccol)
 {
    Eina_Bool had_star = EINA_FALSE, had_nl = EINA_FALSE;
    eina_strbuf_reset(ls->buff);
@@ -250,7 +250,6 @@ read_long_comment(Eo_Lexer *ls, Eo_Token *tok, int ccol)
      }
 cend:
    eina_strbuf_trim(ls->buff);
-   if (tok) tok->value.s = eina_stringshare_add(eina_strbuf_string_get(ls->buff));
 }
 
 enum Doc_Tokens {
@@ -752,16 +751,15 @@ lex(Eo_Lexer *ls, Eo_Token *tok)
            next_char(ls);
            if (ls->current == '*')
              {
-                Eina_Bool doc = EINA_FALSE;
                 int ccol = ls->column;
                 next_char(ls);
-                if ((doc = (ls->current == '@')))
-                  next_char(ls);
-                read_long_comment(ls, doc ? tok : NULL, ccol);
-                if (doc)
-                  return TOK_COMMENT;
-                else
-                  continue;
+                if (ls->current == '@')
+                  {
+                     eo_lexer_lex_error(ls, "old style documentation comment", -1);
+                     return -1; /* unreachable */
+                  }
+                read_long_comment(ls, ccol);
+                continue;
              }
            else if (ls->current != '/') return '/';
            next_char(ls);
@@ -1096,7 +1094,7 @@ eo_lexer_token_to_str(int token, char *buf)
 const char *
 eo_lexer_keyword_str_get(int kw)
 {
-   return tokens[kw + 13];
+   return tokens[kw + 12];
 }
 
 Eina_Bool
@@ -1146,7 +1144,7 @@ eo_lexer_shutdown()
 
 static Eina_Bool
 _eo_is_tokstr(int t) {
-    return (t == TOK_COMMENT) || (t == TOK_STRING) || (t == TOK_VALUE);
+    return (t == TOK_STRING) || (t == TOK_VALUE);
 }
 
 void
index c15b8e2..8bb8f68 100644 (file)
@@ -17,7 +17,7 @@ enum Tokens
    TOK_EQ = START_CUSTOM, TOK_NQ, TOK_GE, TOK_LE,
    TOK_AND, TOK_OR, TOK_LSH, TOK_RSH,
 
-   TOK_COMMENT, TOK_DOC, TOK_STRING, TOK_CHAR, TOK_NUMBER, TOK_VALUE
+   TOK_DOC, TOK_STRING, TOK_CHAR, TOK_NUMBER, TOK_VALUE
 };
 
 /* all keywords in eolian, they can still be used as names (they're TOK_VALUE)
index bb23240..e065797 100644 (file)
@@ -957,11 +957,6 @@ parse_return(Eo_Lexer *ls, Eo_Ret_Def *ret, Eina_Bool allow_void)
         eo_lexer_get(ls);
      }
    check_next(ls, ';');
-   if (ls->t.token == TOK_COMMENT)
-     {
-        ret->comment = eina_stringshare_ref(ls->t.value.s);
-        eo_lexer_get(ls);
-     }
    FILL_DOC(ls, ret, doc);
 }
 
@@ -1039,11 +1034,6 @@ parse_param(Eo_Lexer *ls, Eina_List **params, Eina_Bool allow_inout,
      }
 end:
    check_next(ls, ';');
-   if (ls->t.token == TOK_COMMENT)
-     {
-        par->description = eina_stringshare_ref(ls->t.value.s);
-        eo_lexer_get(ls);
-     }
    FILL_DOC(ls, par, doc);
 }
 
@@ -1101,14 +1091,6 @@ parse_accessor(Eo_Lexer *ls, Eolian_Function *prop)
    line = ls->line_number;
    col = ls->column;
    check_next(ls, '{');
-   if (ls->t.token == TOK_COMMENT)
-     {
-        if (is_get)
-          prop->get_description = eina_stringshare_ref(ls->t.value.s);
-        else
-          prop->set_description = eina_stringshare_ref(ls->t.value.s);
-        eo_lexer_get(ls);
-     }
    if (is_get)
      {
         FILL_DOC(ls, prop, get_doc);
@@ -1243,11 +1225,6 @@ body:
    line = ls->line_number;
    col = ls->column;
    check_next(ls, '{');
-   if (ls->t.token == TOK_COMMENT)
-     {
-        prop->common_description = eina_stringshare_ref(ls->t.value.s);
-        eo_lexer_get(ls);
-     }
    FILL_DOC(ls, prop, common_doc);
    for (;;) switch (ls->t.kw)
      {
@@ -1329,11 +1306,6 @@ body:
    line = ls->line_number;
    col = ls->column;
    check_next(ls, '{');
-   if (ls->t.token == TOK_COMMENT)
-     {
-        meth->common_description = eina_stringshare_ref(ls->t.value.s);
-        eo_lexer_get(ls);
-     }
    FILL_DOC(ls, meth, common_doc);
    for (;;) switch (ls->t.kw)
      {
@@ -1655,11 +1627,6 @@ parse_class_body(Eo_Lexer *ls, Eolian_Class_Type type)
              has_implements    = EINA_FALSE,
              has_constructors  = EINA_FALSE,
              has_events        = EINA_FALSE;
-   if (ls->t.token == TOK_COMMENT)
-     {
-        ls->tmp.kls->description = eina_stringshare_ref(ls->t.value.s);
-        eo_lexer_get(ls);
-     }
    FILL_DOC(ls, ls->tmp.kls, doc);
    if (type == EOLIAN_CLASS_INTERFACE)
      {