q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a7dea04b2642397d3d545e2dbd0885939180d76c
commit a7dea04b2642397d3d545e2dbd0885939180d76c Author: Daniel Kolesa <d.kol...@osg.samsung.com> Date: Fri May 22 17:32:21 2015 +0100 eolian: merge eo_file_parse and eot_file_parse --- src/bin/eolian/main.c | 9 +-------- src/bin/eolian_cxx/eolian_cxx.cc | 2 +- src/bindings/luajit/eolian.lua | 15 +++++---------- src/lib/eolian/Eolian.h | 20 +++----------------- src/lib/eolian/eo_parser.c | 2 +- src/lib/eolian/eolian_database.c | 23 +++++++++++------------ src/scripts/elua/modules/lualian.lua | 2 +- src/tests/eolian/eolian_parsing.c | 35 +++++++++++++++++------------------ 8 files changed, 40 insertions(+), 68 deletions(-) diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index b198a23..22675fc 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -397,14 +397,7 @@ int main(int argc, char **argv) is_eo = eina_str_has_suffix(eo_filename, EO_SUFFIX); - if (!is_eo && !eina_str_has_suffix(eo_filename, EOT_SUFFIX)) - { - ERR("The input file %s doesn't have a correct extension (.eo/.eot).\n", eo_filename); - goto end; - } - - if ((is_eo && !eolian_eo_file_parse(eo_filename)) || - (!is_eo && !eolian_eot_file_parse(eo_filename))) + if (!eolian_file_parse(eo_filename)) { ERR("Error during parsing file %s\n", eo_filename); goto end; diff --git a/src/bin/eolian_cxx/eolian_cxx.cc b/src/bin/eolian_cxx/eolian_cxx.cc index 7afa10d..38084f4 100644 --- a/src/bin/eolian_cxx/eolian_cxx.cc +++ b/src/bin/eolian_cxx/eolian_cxx.cc @@ -230,7 +230,7 @@ database_load(options_type const& opts) } if (!opts.in_file.empty()) { - if (!::eolian_eo_file_parse(opts.in_file.c_str())) + if (!::eolian_file_parse(opts.in_file.c_str())) { EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain) << "Failed parsing: " << opts.in_file << "."; diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua index 8775759..02aae3f 100644 --- a/src/bindings/luajit/eolian.lua +++ b/src/bindings/luajit/eolian.lua @@ -166,8 +166,7 @@ ffi.cdef [[ EOLIAN_UNOP_BNOT, /* ~ int */ } Eolian_Unary_Operator; - Eina_Bool eolian_eo_file_parse(const char *filename); - Eina_Bool eolian_eot_file_parse(const char *filepath); + Eina_Bool eolian_file_parse(const char *filepath); Eina_Iterator *eolian_all_eo_file_paths_get(void); Eina_Iterator *eolian_all_eot_file_paths_get(void); Eina_Iterator *eolian_all_eo_files_get(void); @@ -358,12 +357,12 @@ M.system_directory_scan = function() return eolian.eolian_system_directory_scan() ~= 0 end -M.all_eo_files_parse = function() - return eolian.eolian_all_eo_files_parse() ~= 0 +M.file_parse = function(fpath) + return eolian.eolian_file_parse(fpath) ~= 0 end -M.eo_file_parse = function(fname) - return eolian.eolian_eo_file_parse(fname) ~= 0 +M.all_eo_files_parse = function() + return eolian.eolian_all_eo_files_parse() ~= 0 end M.all_eot_files_parse = function() @@ -390,10 +389,6 @@ M.database_validate = function() return eolian.eolian_database_validate() ~= 0 end -M.eot_file_parse = function(fname) - return eolian.eolian_eot_file_parse(fname) ~= 0 -end - M.show_class = function(klass) return eolian.eolian_show_class(klass) ~= 0 end diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index bbe8415..0094ad0 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -303,27 +303,13 @@ typedef enum } Eolian_Unary_Operator; /* - * @brief Parse a given .eo file and fill the database. + * @brief Parse the given .eo or .eot file and fill the database. * - * During parsing, the class described into the .eo file is created with - * all the information related to this class. - * - * @param[in] filename Name of the file to parse. - * @see eolian_eot_file_parse - * - * @ingroup Eolian - */ -EAPI Eina_Bool eolian_eo_file_parse(const char *filename); - -/* - * @brief Parse a given .eot file and fill the database. - * - * @param[in] filename Name of the file to parse. - * @see eolian_eo_file_parse + * @param[in] filepath Path to the file to parse. * * @ingroup Eolian */ -EAPI Eina_Bool eolian_eot_file_parse(const char *filepath); +EAPI Eina_Bool eolian_file_parse(const char *filepath); /* * @brief Get an iterator to all .eo file names with paths. diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index b72a5a7..5ab85e2 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -676,7 +676,7 @@ _parse_dep(Eo_Lexer *ls, const char *fname, const char *name) snprintf(buf, sizeof(buf), "cyclic dependency '%s'", name); eo_lexer_syntax_error(ls, buf); } - if (!eolian_eo_file_parse(fname)) + if (!eo_parser_database_fill(fname, EINA_FALSE)) { char buf[PATH_MAX]; eo_lexer_context_restore(ls); diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 5daa6d7..94f6a9d 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -206,25 +206,24 @@ database_class_name_validate(const char *class_name, const Eolian_Class **cl) } EAPI Eina_Bool -eolian_eot_file_parse(const char *filepath) +eolian_file_parse(const char *filepath) { + Eina_Bool is_eo; if (_database_init_count <= 0) return EINA_FALSE; - return eo_parser_database_fill(filepath, EINA_TRUE); -} - -EAPI Eina_Bool -eolian_eo_file_parse(const char *filepath) -{ - if (_database_init_count <= 0) - return EINA_FALSE; - return eo_parser_database_fill(filepath, EINA_FALSE); + is_eo = eina_str_has_suffix(filepath, EO_SUFFIX); + if (!is_eo && !eina_str_has_suffix(filepath, EOT_SUFFIX)) + { + fprintf(stderr, "eolian: file '%s' doesn't have a correct extension\n", filepath); + return EINA_FALSE; + } + return eo_parser_database_fill(filepath, !is_eo); } static Eina_Bool _tfile_parse(const Eina_Hash *hash EINA_UNUSED, const void *key EINA_UNUSED, void *data, void *fdata) { Eina_Bool *ret = fdata; - if (*ret) *ret = eolian_eot_file_parse(data); + if (*ret) *ret = eo_parser_database_fill(data, EINA_TRUE); return *ret; } @@ -243,7 +242,7 @@ eolian_all_eot_files_parse() static Eina_Bool _file_parse(const Eina_Hash *hash EINA_UNUSED, const void *key EINA_UNUSED, void *data, void *fdata) { Eina_Bool *ret = fdata; - if (*ret) *ret = eolian_eo_file_parse(data); + if (*ret) *ret = eo_parser_database_fill(data, EINA_FALSE); return *ret; } diff --git a/src/scripts/elua/modules/lualian.lua b/src/scripts/elua/modules/lualian.lua index b2ed324..9ef3b7b 100644 --- a/src/scripts/elua/modules/lualian.lua +++ b/src/scripts/elua/modules/lualian.lua @@ -689,7 +689,7 @@ M.system_directory_scan = function() end M.generate = function(fname, fstream) - if not eolian.eo_file_parse(fname) then + if not eolian.file_parse(fname) then error("Failed parsing file: " .. fname) end if not eolian.database_validate() then diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c index e9495d7..70c40bb 100644 --- a/src/tests/eolian/eolian_parsing.c +++ b/src/tests/eolian/eolian_parsing.c @@ -22,7 +22,7 @@ START_TEST(eolian_namespaces) eolian_init(); /* Parsing */ fail_if(!eolian_directory_scan(PACKAGE_DATA_DIR"/data")); - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/nmsp1_class1.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/nmsp1_class1.eo")); /* Classes existence */ fail_if(!(class11 = eolian_class_get_by_name("nmsp1.class1"))); @@ -105,7 +105,7 @@ START_TEST(eolian_events) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/events.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/events.eo")); /* Class */ fail_if(!(class = eolian_class_get_by_name("Events"))); @@ -151,7 +151,7 @@ START_TEST(eolian_override) eolian_init(); /* Parsing */ fail_if(!eolian_directory_scan(PACKAGE_DATA_DIR"/data")); - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/override.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/override.eo")); /* Class */ fail_if(!(class = eolian_class_get_by_name("Override"))); @@ -257,12 +257,11 @@ END_TEST START_TEST(eolian_consts) { const Eolian_Function *fid = NULL; - const Eolian_Function_Parameter *param = NULL; const Eolian_Class *class; eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/consts.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/consts.eo")); fail_if(!(class = eolian_class_get_by_name("Consts"))); /* Method */ @@ -286,7 +285,7 @@ START_TEST(eolian_ctor_dtor) eolian_init(); /* Parsing */ fail_if(!eolian_directory_scan(PACKAGE_DATA_DIR"/data")); - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/ctor_dtor.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/ctor_dtor.eo")); fail_if(!(class = eolian_class_get_by_name("Ctor_Dtor"))); fail_if(!(base = eolian_class_get_by_name("Base"))); @@ -348,7 +347,7 @@ START_TEST(eolian_typedef) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/typedef.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/typedef.eo")); /* Check that the class Dummy is still readable */ fail_if(!(class = eolian_class_get_by_name("Typedef"))); @@ -417,7 +416,7 @@ START_TEST(eolian_complex_type) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/complex_type.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/complex_type.eo")); fail_if(!(class = eolian_class_get_by_name("Complex_Type"))); /* Properties return type */ @@ -501,7 +500,7 @@ START_TEST(eolian_scope) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/scope.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/scope.eo")); fail_if(!(class = eolian_class_get_by_name("Scope"))); /* Property scope */ @@ -538,7 +537,7 @@ START_TEST(eolian_simple_parsing) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/class_simple.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/class_simple.eo")); fail_if(!(class = eolian_class_get_by_name("Class_Simple"))); fail_if(eolian_class_get_by_file("class_simple.eo") != class); fail_if(strcmp(eolian_class_file_get(class), "class_simple.eo")); @@ -679,7 +678,7 @@ START_TEST(eolian_struct) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/struct.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/struct.eo")); /* Check that the class Dummy is still readable */ fail_if(!(class = eolian_class_get_by_name("Struct"))); @@ -735,7 +734,7 @@ START_TEST(eolian_extern) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/extern.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/extern.eo")); /* Check that the class Dummy is still readable */ fail_if(!(class = eolian_class_get_by_name("Extern"))); @@ -773,7 +772,7 @@ START_TEST(eolian_var) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/var.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/var.eo")); /* Check that the class Dummy is still readable */ fail_if(!(class = eolian_class_get_by_name("Var"))); @@ -839,7 +838,7 @@ START_TEST(eolian_enum) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/enum.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/enum.eo")); /* Check that the class Dummy is still readable */ fail_if(!(class = eolian_class_get_by_name("Enum"))); @@ -931,7 +930,7 @@ START_TEST(eolian_class_funcs) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/class_funcs.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/class_funcs.eo")); fail_if(!(class = eolian_class_get_by_name("Class_Funcs"))); /* Class properties */ @@ -966,7 +965,7 @@ START_TEST(eolian_free_func) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/free_func.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/free_func.eo")); /* Check that the class Dummy is still readable */ fail_if(!(class = eolian_class_get_by_name("Free_Func"))); @@ -1012,7 +1011,7 @@ START_TEST(eolian_null) eolian_init(); /* Parsing */ - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/null.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/null.eo")); fail_if(!(class = eolian_class_get_by_name("Null"))); fail_if(!(func = eolian_class_function_get_by_name(class, "foo", EOLIAN_METHOD))); @@ -1059,7 +1058,7 @@ START_TEST(eolian_import) fail_if(!eolian_directory_scan(PACKAGE_DATA_DIR"/data")); - fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/import.eo")); + fail_if(!eolian_file_parse(PACKAGE_DATA_DIR"/data/import.eo")); fail_if(!(class = eolian_class_get_by_name("Import"))); fail_if(!(type = eolian_type_alias_get_by_name("Imported"))); --