eolian: allow omitting of () in class with no inherits, fix up tests
authorDaniel Kolesa <d.kolesa@samsung.com>
Thu, 19 Jun 2014 15:30:18 +0000 (16:30 +0100)
committerDaniel Kolesa <d.kolesa@samsung.com>
Thu, 19 Jun 2014 15:30:18 +0000 (16:30 +0100)
src/lib/eolian/eo_parser.c
src/tests/eolian/data/scope.eo

index 2fb6c53..bdd567d 100644 (file)
@@ -921,18 +921,23 @@ parse_class(Eo_Lexer *ls, Eina_Bool allow_ctors, Eolian_Class_Type type)
    parse_name(ls, buf);
    ls->tmp.kls->name = eina_stringshare_add(eina_strbuf_string_get(buf));
    pop_strbuf(ls);
-   line = ls->line_number;
-   check_next(ls, '(');
-   if (ls->t.token != ')')
+   if (ls->t.token != '{')
      {
-        ls->tmp.kls->inherits = parse_name_list(ls);
-        ls->tmp.str_items = NULL;
+        line = ls->line_number;
+        check_next(ls, '(');
+        if (ls->t.token != ')')
+          {
+             ls->tmp.kls->inherits = parse_name_list(ls);
+             ls->tmp.str_items = NULL;
+          }
+        check_match(ls, ')', '(', line);
      }
-   check_match(ls, ')', '(', line);
    line = ls->line_number;
    check_next(ls, '{');
    parse_class_body(ls, allow_ctors);
    check_match(ls, '}', '{', line);
+   if (ls->t.token == ';')
+     eo_lexer_get(ls);
 }
 
 static void
index a0c0448..737d7e9 100644 (file)
@@ -8,7 +8,7 @@ class Simple {
          get {
          }
       }
-      public   c  {
+      c {
          get {
          }
       }
@@ -18,7 +18,7 @@ class Simple {
       }
       protected  bar  {
       }
-      public foobar {
+      foobar {
       }
    }
 };