efl/src/lib/eolian
Daniel Kolesa 5651b2e586 eolian: deferred parsing of inherits + better static checks
This change finally introduces deferred parsing of inherits to
Eolian, after a long time and many iterations. That means instead
of parsing inherits directly as part of the main file's parse pass,
they're pushed into a queue and parsed later. The validation engine
was modified to properly fill in the remaining info afterwards.

This may introduce breakages but I haven't noticed any. It also
properly unlocks cyclic dependency support in Eolian.

Additionally, this also introduces checks for duplicates in class
inherits (class Foo(Bar, Bar) is no longer possible) and it adds
stricter name checks, so you can no longer have a class Foo.Bar
and refer to it as Foo_Bar in implements. This was actually never
meant to be supported, but the check was previously broken.

@feature
2018-01-30 17:08:44 +01:00
..
CMakeLists.txt build: add eolian 2017-01-23 18:52:34 +01:00
Eolian.h all: Simplify definition of EAPI 2018-01-18 18:04:03 +09:00
database_class.c eolian: properly free parts 2017-10-31 12:15:23 +01:00
database_class_api.c eolian: remove internal state struct (rely on external Eolian state) 2017-12-06 15:07:31 +01:00
database_constructor.c
database_constructor_api.c eolian: fill ctor class early on 2017-01-02 15:28:45 +01:00
database_event.c eolian: remove support for old event doc syntax 2015-06-11 17:14:51 +01:00
database_event_api.c eolian: consistent and cleaner error values from APIs 2017-01-13 15:26:05 +01:00
database_expr.c eolian: do not require unit for expr eval APIs 2018-01-16 16:37:52 +01:00
database_expr_api.c eolian: do not require unit for expr eval APIs 2018-01-16 16:37:52 +01:00
database_function.c eolian: move base function doc API into implements 2017-01-19 15:09:07 +01:00
database_function_api.c eolian: Add builtin type "strbuf" 2017-12-05 10:09:58 +09:00
database_function_parameter.c eolian: fix function parameter memory leak with value 2015-11-03 13:40:17 +00:00
database_function_parameter_api.c eolian: consistent and cleaner error values from APIs 2017-01-13 15:26:05 +01:00
database_implement.c eolian: add syntax for overridding docs in implements 2017-01-18 15:33:44 +01:00
database_implement_api.c eolian: move base function doc API into implements 2017-01-19 15:09:07 +01:00
database_part.c eolian: properly free parts 2017-10-31 12:15:23 +01:00
database_part_api.c eolian: Add API's for part enumeration 2017-11-23 15:14:41 +09:00
database_type.c eolian: do not require unit when stringifying types 2018-01-16 16:39:05 +01:00
database_type_api.c eolian: do not require unit when stringifying types 2018-01-16 16:39:05 +01:00
database_validate.c eolian: deferred parsing of inherits + better static checks 2018-01-30 17:08:44 +01:00
database_var.c eolian: remove remaining global state (+ modify APIs accordingly) 2017-12-15 17:11:11 +01:00
database_var_api.c eolian: remove internal state struct (rely on external Eolian state) 2017-12-06 15:07:31 +01:00
eo_lexer.c eolian: remove _cunit and prepare for returning actual units 2017-12-14 17:31:21 +01:00
eo_lexer.h eolian: store unit inside lexer 2017-12-14 16:38:35 +01:00
eo_parser.c eolian: deferred parsing of inherits + better static checks 2018-01-30 17:08:44 +01:00
eo_parser.h eolian: remove _cunit and prepare for returning actual units 2017-12-14 17:31:21 +01:00
eolian.c eolian: remove now unused database init/shutdown 2017-12-15 17:11:11 +01:00
eolian_database.c eolian: remove now unused database init/shutdown 2017-12-15 17:11:11 +01:00
eolian_database.h eolian: do not require unit when stringifying types 2018-01-16 16:39:05 +01:00
eolian_priv.h eolian: Add some color to those warning messages 2017-10-31 14:52:34 +09:00