Jean-Philippe Andre
d49c544e81
eolian: Add API's for part enumeration
...
@feature
2017-11-23 15:14:41 +09:00
Pawel Aksiutowicz
319f497a72
eolian: Removed warning of unused var from eo_parser
...
Reviewers: stanluk, lukasz.stanislawski
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5502
2017-11-21 11:12:27 +09:00
Jean-Philippe Andre
8f2e491573
eolian: Fix odd syntax (remove EINA_UNUSED)
2017-11-14 13:40:19 +09:00
Daniel Kolesa
70ee11af84
eolian: enable cyclic imports of eo files
2017-11-08 16:46:14 +01:00
Daniel Kolesa
5c2611d93a
eolian: simplify dependency parsing and cut down on hash lookups
2017-11-08 16:12:40 +01:00
Daniel Kolesa
0dbbb18171
eolian: disallow ptr() on things that are already pointer-like
...
This disallows deeply nested pointers, you can only explicitly
ptr() on types that are strictly value types.
For a few cases where it was necessary to override this behavior,
you can use legacy(ptr(x)) as a temporary measure.
2017-11-03 15:30:10 +01:00
Daniel Kolesa
cf63573e73
eolian: only allow reference (ownable) types in containers
2017-11-02 13:51:02 +01:00
Daniel Kolesa
f851fa511e
eolian: add part validation (including dup check with funcs)
2017-11-01 13:19:33 +01:00
Daniel Kolesa
eab6f009e2
eolian: add @cref as alternative to @in
...
This is a "pass by reference to const" equivalent. There is no explicit pointer
and currently it's the same as ptr(const(x)) on the type. However, it is also
usable on properties.
2017-11-01 12:40:39 +01:00
Daniel Kolesa
c8e7ad530e
eolian: properly free parts
2017-10-31 12:15:23 +01:00
Daniel Kolesa
0a92c0c61f
eolian: fill parts into db
2017-10-31 12:15:23 +01:00
Jean-Philippe Andre
c1d21cef89
eolian: Add some color to those warning messages
...
Note: This is not using eina_log, not entirely sure why, but this
doesn't prevent us from adding some color.
2017-10-31 14:52:34 +09:00
Jean-Philippe Andre
1adb93b3e5
eolian: Skip @beta APIs for duplicate warnings
...
No warnings:
export EOLIAN_WARN_FUNC_DUPLICATES=0
No beta warnings:
export EOLIAN_WARN_FUNC_DUPLICATES=1
All warnings including beta:
export EOLIAN_WARN_FUNC_DUPLICATES=2
EOLIAN_WARN_FUNC_DUPLICATES is not an API and may change in the future
as we improve the tool :)
2017-10-31 14:52:34 +09:00
Daniel Kolesa
4f8a9b50f4
eolian: make inherits_get return a list of classes, not strings
...
Most of the time you need to retrieve the class from the string
anyway, so remove this relic of old Eolian and gain some small
performance benefits and extra convenience.
Subtly breaks API but everything should be updated.
2017-10-25 16:25:41 +02:00
Daniel Kolesa
a4c96ceb73
eolian: add part definition
2017-10-25 16:25:41 +02:00
Daniel Kolesa
c46f9bec2d
eolian: enable duplicate validation but only warn for now
...
Use the EOLIAN_WARN_FUNC_DUPLICATES environment variable to enable
those warnings.
2017-10-25 13:03:20 +02:00
Daniel Kolesa
bd90fff392
eolian: only check for validation where really necessary
2017-10-24 23:41:59 +02:00
Daniel Kolesa
88083b0f14
eolian: check for inheritance tree function conflicts
...
Now a class cannot define a method/property of some name if there
already is something of the same name within the inheritance tree.
2017-10-24 23:39:14 +02:00
Daniel Kolesa
05b395be47
eolian: validate classes in a recursive manner
...
This allows for proper order of validation which will improve our
performance when also validating for name duplicates.
2017-10-24 23:21:24 +02:00
Daniel Kolesa
903fd9065c
eolian: keep track of which objects are validated
2017-10-24 17:49:21 +02:00
Daniel Kolesa
62e46e70ef
eolian: initial parsing for parts in eo files
2017-10-24 17:33:07 +02:00
Cedric BAIL
c0b2ae2cc8
eolian: there should be nothing depending on efl config in our public header.
2017-10-19 15:29:35 -07:00
Daniel Kolesa
7c7e5ec423
eolian: validate inner types of complex types
...
This makes sure the inner types are all correctly defined and
that freefuncs are actually correctly filled.
2017-09-28 23:22:05 +02:00
Daniel Kolesa
5e788e3a5c
elua: bind new eolian type builtin API
2017-09-22 21:03:23 +02:00
Daniel Kolesa
c146d6f877
eolian: add a way to query the builtin type of a type
2017-09-22 21:01:12 +02:00
Daniel Kolesa
9009d3dae4
eolian: add any_value_ptr
...
Because pointer Eina_Values and value Eina_Values have slightly
different semantics (when it comes to resource management) it's
better to split them.
2017-09-22 20:25:31 +02:00
Daniel Kolesa
3d8081d085
eolian: rename generic_value to any_value
2017-09-22 20:16:06 +02:00
Daniel Kolesa
a6e5caba10
eolian: remove leftover code
2017-09-22 18:08:36 +02:00
Daniel Kolesa
1577c576e6
eolian: remove static_array and terminated_array
...
These types are of questionable value and the API was not entirely
thought out - remove for now, and if a legitimate use is found
later, they may be readded (with a better API), but typically it
seems best to redesign the bad APIs around safe containers...
2017-09-22 18:01:15 +02:00
Daniel Kolesa
4bae2a7385
eolian: merge REGULAR and COMPLEX types
2017-09-22 17:46:02 +02:00
Daniel Kolesa
f36e5bd543
eolian: add mstring
...
This is a new type representing a mutable string (no const).
Regular strings cannot be made mutable with @owned because
they might be hidden behind typedefs.
2017-09-22 17:10:42 +02:00
Daniel Kolesa
fdd27cadf8
eo: make more freefuncs implicit
2017-09-22 16:17:19 +02:00
Daniel Kolesa
9da5cf20aa
eolian: remove old ownership system
2017-09-15 17:52:55 +02:00
Daniel Kolesa
1afd3c215f
eolian: correctness fixes in tests and eo files
2017-09-15 17:48:28 +02:00
Daniel Kolesa
21213802e4
eolian: switch validation to new ownership system
2017-09-15 16:37:26 +02:00
Daniel Kolesa
4b27fe6571
eolian: add API to check for @owned
2017-09-15 16:33:57 +02:00
Daniel Kolesa
010650663b
eolian: store ownership info in types
...
Even though ownership info belongs to params/returns/etc at syntax
level, we can still store it in the type and turn several API funcs
into one this way.
2017-09-15 16:30:52 +02:00
Daniel Kolesa
792855a1fa
eolian: parsing of new @owned syntax for complex types
2017-09-15 16:24:46 +02:00
Daniel Kolesa
4c4c641c4b
eolian: disallow parsing of warn_unused/owned for funcptrs
2017-09-15 15:54:48 +02:00
Daniel Kolesa
11ad2b94ff
eolian: initial parsing for @owned
...
This is the new ownership system for Eolian, working on params,
returns, struct fields or events directly rather than specifying
ownership at type level. As the new system will evolve it will
gain missing features and necessary checks.
2017-09-15 15:51:25 +02:00
Daniel Kolesa
518ca72d06
eolian: default free funcs for builtin types
2017-09-14 15:53:30 +02:00
Daniel Kolesa
a9aed90fde
eolian: more relaxed rules on what is actually ownable
...
For example, aliases to ownable types are now also ownable,
which wasn't possible in the previous version, where you could
only own actual expanded ownable types.
2017-09-14 00:34:06 +02:00
Daniel Kolesa
59347d4c4b
eolian: include terminatable checks in ownable check
2017-09-14 00:28:32 +02:00
Daniel Kolesa
8ff2bf35fe
eolian: inherit freefunc between types/typedecls
2017-09-14 00:12:46 +02:00
Daniel Kolesa
e55ab81835
eolian: always implicitly validate database and remove its API
2017-09-13 23:58:47 +02:00
Daniel Kolesa
2a9be1f5be
eolian: move terminated_array typecheck to validate pass
2017-09-13 23:58:47 +02:00
Daniel Kolesa
a0adca9cb9
eolian: move ownable checks to validation stage
2017-09-13 23:58:47 +02:00
Daniel Kolesa
0af3254020
eolian: fix float parsing with locales with ',' decpoint
2017-09-01 16:08:10 +02:00
Daniel Kolesa
10fd3c32e8
eolian: remove c_only
...
Unused and of questionable value.
2017-08-30 19:46:41 +02:00
Daniel Kolesa
4a16e1d862
eolian: @extern for function pointers
2017-08-30 16:02:30 +02:00