diff options
author | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2015-05-08 14:00:07 +0100 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2015-05-08 14:00:07 +0100 |
commit | b33e2b21a161f3aa3509826ec9501f93ddfc25e6 (patch) | |
tree | 0c1ab717e100e358a5c03787f67d970af12b3d14 | |
parent | a08583d4d45c4d227e5ab7d20f4e95521104e588 (diff) | |
download | efl-b33e2b21a161f3aa3509826ec9501f93ddfc25e6.tar.gz |
eolian: parse the @beta qualifier
-rw-r--r-- | src/lib/eolian/eo_parser.c | 17 | ||||
-rw-r--r-- | 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 4a19c00a37..88f98bb4d5 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 309f614ca3..407d3d71ac 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; }; |