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
Daniel Kolesa
fd93caf4b2
eolian: remove unused variable
2017-08-30 15:34:49 +02:00
Daniel Kolesa
c9d8814be1
eolian: funcptr docs in correct place, remove more qualifiers
2017-08-28 17:27:47 +02:00
Daniel Kolesa
eeca57fdb0
eolian: less clumsy return type handling
2017-08-28 17:22:09 +02:00
Daniel Kolesa
700ec978cc
eolian: remove unused qualifiers from func pointers
2017-08-28 17:20:18 +02:00
Daniel Kolesa
706de57b9f
eolian: implement proper return type serialization
...
This accounts for const so that you can't generate functions
that return const values, as that makes no sense.
@fix T5024
2017-08-10 12:41:03 +02:00
Daniel Kolesa
e288f5160b
eolian: change C type serialization API to account for returns
...
This will allow proper handling of const.
2017-08-10 12:12:38 +02:00
Carsten Haitzler
ead5d9cefd
eo lexer - handle malloc failure with longjmp
...
handles possible error case nicely
2017-07-16 15:56:02 +09:00
Uma Devika
d4ab6ff90a
Evas and Eolian : Freed string buffer
...
Summary:
Summary : String buffer returned by eina_strbuf_new() is not freed in some cases
@Fix
Signed-off-by: Uma Devika <u.bodapati@samsung.com>
Reviewers: cedric, tasn, jpeg, raster, singh.amitesh
Subscribers: tanwar.umesh07, yashu21985, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5000
2017-07-07 13:22:53 +09:00
Lauro Moura
1634c14169
eolian: function pointers
...
First steps toward explicit function pointer support in eolian.
To declare a function pointer type, use the following syntax, similar to
a regular eolian method declaration.
function FunctionName {
params {
...
}
return: Return type
}
2017-06-18 12:09:22 -03:00
Daniel Kolesa
584e91d4f9
eolian: prepare to defer all dependency parses
...
Dependencies are now going to be parsed strictly after the main
file, to allow proper dependency cycle behavior in all places. For
now there is correct parsing of deferred deps but they're not
queued yet.
2017-06-09 15:57:44 +02:00
Daniel Kolesa
cc7b354db2
eolian: silence a unused warning temporarily
2017-05-30 17:15:54 +02:00
Daniel Kolesa
d2280f91a1
eolian: use unit in typedecl c_type_get
2017-05-30 17:15:54 +02:00
Daniel Kolesa
d4c835545b
eolian: pass unit in internal type serialization
2017-05-30 17:15:54 +02:00
Daniel Kolesa
a5e66b3421
eolian: doc token ref resolver now takes unit
2017-05-30 17:15:54 +02:00
Daniel Kolesa
81a1d9659a
eolian: type_class_get takes unit
2017-05-30 17:15:54 +02:00
Daniel Kolesa
c234b5ee69
eolian: expr eval APIs now take units
2017-05-30 17:15:54 +02:00
Daniel Kolesa
4125e3f34b
eolian: more expr system unit updates
2017-05-30 17:15:54 +02:00
Daniel Kolesa
2cfbd3a42b
eolian: pass unit around in expr eval
2017-05-30 17:15:54 +02:00
Daniel Kolesa
308a3d91a3
eolian: use unit in all getters for typedecls
2017-05-30 17:15:54 +02:00
Daniel Kolesa
4f88aa424d
eolian: use units in by_file getters for typedecls
2017-05-30 17:15:54 +02:00
Daniel Kolesa
67bc32d9ac
eolian: pass unit to enum get by name
2017-05-30 17:15:54 +02:00
Daniel Kolesa
9c2dae3531
eolian: pass unit to struct get by name
2017-05-30 17:15:54 +02:00