q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b33e2b21a161f3aa3509826ec9501f93ddfc25e6

commit b33e2b21a161f3aa3509826ec9501f93ddfc25e6
Author: Daniel Kolesa <d.kol...@osg.samsung.com>
Date:   Fri May 8 14:00:07 2015 +0100

    eolian: parse the @beta qualifier
---
 src/lib/eolian/eo_parser.c       | 17 ++++++++++++++---
 src/lib/eolian/eolian_database.h |  1 +
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 4a19c00..88f98bb 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -1108,7 +1108,7 @@ parse_param(Eo_Lexer *ls, Eina_List **params, Eina_Bool 
allow_inout,
       case KW_at_nullable:
         if (has_nonull)
           eo_lexer_syntax_error(ls, "both nullable and nonull specified");
-        CASE_LOCK(ls, nullable, "c_only qualifier");
+        CASE_LOCK(ls, nullable, "nullable qualifier");
         par->nullable = EINA_TRUE;
         eo_lexer_get(ls);
         break;
@@ -1255,7 +1255,7 @@ parse_property(Eo_Lexer *ls)
    Eina_Bool has_get       = EINA_FALSE, has_set    = EINA_FALSE,
              has_keys      = EINA_FALSE, has_values = EINA_FALSE,
              has_protected = EINA_FALSE, has_class  = EINA_FALSE,
-             has_c_only    = EINA_FALSE;
+             has_c_only    = EINA_FALSE, has_beta   = EINA_FALSE;
    prop = calloc(1, sizeof(Eolian_Function));
    prop->klass = ls->tmp.kls;
    prop->type = EOLIAN_UNRESOLVED;
@@ -1281,6 +1281,11 @@ parse_property(Eo_Lexer *ls)
         prop->is_c_only = EINA_TRUE;
         eo_lexer_get(ls);
         break;
+      case KW_at_beta:
+        CASE_LOCK(ls, beta, "beta qualifier");
+        prop->is_beta = EINA_TRUE;
+        eo_lexer_get(ls);
+        break;
       default:
         goto body;
      }
@@ -1329,7 +1334,8 @@ parse_method(Eo_Lexer *ls)
    Eina_Bool has_const       = EINA_FALSE, has_params = EINA_FALSE,
              has_return      = EINA_FALSE, has_legacy = EINA_FALSE,
              has_protected   = EINA_FALSE, has_class  = EINA_FALSE,
-             has_eo          = EINA_FALSE, has_c_only = EINA_FALSE;
+             has_eo          = EINA_FALSE, has_c_only = EINA_FALSE,
+             has_beta        = EINA_FALSE;
    meth = calloc(1, sizeof(Eolian_Function));
    meth->klass = ls->tmp.kls;
    meth->type = EOLIAN_METHOD;
@@ -1360,6 +1366,11 @@ parse_method(Eo_Lexer *ls)
         meth->is_c_only = EINA_TRUE;
         eo_lexer_get(ls);
         break;
+      case KW_at_beta:
+        CASE_LOCK(ls, beta, "beta qualifier");
+        meth->is_beta = EINA_TRUE;
+        eo_lexer_get(ls);
+        break;
       default:
         goto body;
      }
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index 309f614..407d3d7 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -119,6 +119,7 @@ struct _Eolian_Function
    Eina_Bool set_only_legacy: 1;
    Eina_Bool is_class :1;
    Eina_Bool is_c_only :1;
+   Eina_Bool is_beta :1;
    Eina_List *ctor_of;
    Eolian_Class *klass;
 };

-- 


Reply via email to