eolian: always implicitly validate database and remove its API
This commit is contained in:
parent
2a9be1f5be
commit
e55ab81835
|
@ -495,12 +495,6 @@ main(int argc, char **argv)
|
|||
goto end;
|
||||
}
|
||||
|
||||
if (!eolian_database_validate())
|
||||
{
|
||||
fprintf(stderr, "eolian: failed validating database\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
_fill_all_outs(outs, input);
|
||||
|
||||
const char *eobn = _get_filename(input);
|
||||
|
|
|
@ -313,12 +313,6 @@ database_load(options_type const& opts)
|
|||
<< "Failed parsing: " << opts.in_files[0] << ".";
|
||||
assert(false && "Error parsing input file");
|
||||
}
|
||||
if (!::eolian_database_validate())
|
||||
{
|
||||
EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain)
|
||||
<< "Eolian failed validating database.";
|
||||
assert(false && "Error validating database");
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace eolian_cxx {
|
||||
|
|
|
@ -237,7 +237,6 @@ ffi.cdef [[
|
|||
Eina_Bool eolian_system_directory_scan();
|
||||
Eina_Bool eolian_all_eo_files_parse();
|
||||
Eina_Bool eolian_all_eot_files_parse();
|
||||
Eina_Bool eolian_database_validate();
|
||||
const Eolian_Class *eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name);
|
||||
const Eolian_Class *eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name);
|
||||
const char *eolian_class_file_get(const Eolian_Class *klass);
|
||||
|
@ -492,10 +491,6 @@ M.all_eot_files_get = function()
|
|||
return iterator.String_Iterator(eolian.eolian_all_eot_files_get())
|
||||
end
|
||||
|
||||
M.database_validate = function()
|
||||
return eolian.eolian_database_validate() ~= 0
|
||||
end
|
||||
|
||||
M.declaration_type = {
|
||||
UNKNOWN = 0,
|
||||
CLASS = 0,
|
||||
|
|
|
@ -512,17 +512,6 @@ EAPI Eina_Bool eolian_all_eo_files_parse(void);
|
|||
*/
|
||||
EAPI Eina_Bool eolian_all_eot_files_parse(void);
|
||||
|
||||
/*
|
||||
* @brief Validates the database, printing errors and warnings.
|
||||
*
|
||||
* @return EINA_TRUE on success, EINA_FALSE otherwise.
|
||||
*
|
||||
* Useful to catch type errors etc. early on.
|
||||
*
|
||||
* @ingroup Eolian
|
||||
*/
|
||||
EAPI Eina_Bool eolian_database_validate();
|
||||
|
||||
/*
|
||||
* @brief Gets a class by its name
|
||||
*
|
||||
|
@ -2444,7 +2433,7 @@ EAPI char *eolian_doc_token_text_get(const Eolian_Doc_Token *tok);
|
|||
* @brief Get the thing that a reference token references.
|
||||
*
|
||||
* Returns EOLIAN_DOC_REF_INVALID on failure (when not ref token or
|
||||
* invalid ref, but invalid refs don't happen when database is validated).
|
||||
* invalid ref, but invalid refs don't happen when database is valid).
|
||||
*
|
||||
* When the reference is a class, alias, struct, enum or var, the first data arg
|
||||
* is filled. When it's a func, the first data is class and second data is
|
||||
|
|
|
@ -723,6 +723,8 @@ eolian_file_parse(const char *filepath)
|
|||
return NULL;
|
||||
if (!_parse_deferred())
|
||||
return NULL;
|
||||
if (!database_validate())
|
||||
return NULL;
|
||||
return &unit_tmp;
|
||||
}
|
||||
|
||||
|
@ -743,6 +745,10 @@ eolian_all_eot_files_parse()
|
|||
return EINA_FALSE;
|
||||
|
||||
eina_hash_foreach(_tfilenames, _tfile_parse, &ret);
|
||||
|
||||
if (ret && !database_validate())
|
||||
return EINA_FALSE;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -763,16 +769,11 @@ eolian_all_eo_files_parse()
|
|||
return EINA_FALSE;
|
||||
|
||||
eina_hash_foreach(_filenames, _file_parse, &ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
eolian_database_validate()
|
||||
{
|
||||
if (_database_init_count <= 0)
|
||||
if (ret && !database_validate())
|
||||
return EINA_FALSE;
|
||||
|
||||
return database_validate();
|
||||
return ret;
|
||||
}
|
||||
|
||||
EAPI Eina_Iterator *
|
||||
|
|
|
@ -703,9 +703,6 @@ M.generate = function(fname, fstream)
|
|||
error("Failed parsing file: " .. fname)
|
||||
end
|
||||
gen_unit = unit
|
||||
if not eolian.database_validate() then
|
||||
error("Failed validating database.")
|
||||
end
|
||||
local sfn = fname:match(".*[\\/](.+)$") or fname
|
||||
local klass = eolian.class_get_by_file(unit, sfn)
|
||||
File(fname, klass, { gen_class(klass) }):generate(fstream or io.stdout)
|
||||
|
|
Loading…
Reference in New Issue