Daniel Kolesa
90e17acd15
eolian: initial eval function with Eina_Value return
2014-08-21 09:26:03 +01:00
Daniel Kolesa
d7ca6dc1c3
eolian: initial support for expression evaluation
...
There are now functions that let you evaluate Eolian_Expression. They're not exposed
yet. Further improvements will come as well as public API.
2014-08-21 09:26:03 +01:00
Daniel Kolesa
96f360a7d1
eolian: lexing of multichar binary operators
2014-08-21 09:26:03 +01:00
Daniel Kolesa
62541ce484
eolian: rename public enum members to a namespaced form
2014-08-21 09:26:03 +01:00
Daniel Kolesa
436a37f0b9
eolian: initial support for expression parsing
2014-08-21 09:26:03 +01:00
Daniel Kolesa
e3192796b6
eolian: actually fill in the line/column info in the handles
2014-08-21 09:26:03 +01:00
Daniel Kolesa
2aa4cbc89c
eolian: provide line info structure in each eolian handle
2014-08-21 09:26:03 +01:00
Daniel Kolesa
bb24b60638
eolian: generate implicit typedef for each class
...
And use these typedefs instead of just Eo in API.
2014-08-21 09:26:03 +01:00
Daniel Kolesa
8d74261a30
eolian: fix a bug that caused wrong comparisons of class and file name
...
This also renames ecore_poll files to ecore_poller so that the class name matches.
2014-08-21 09:26:03 +01:00
Daniel Kolesa
5da69ddbf7
eolian: support for class type in c_type_get
2014-08-21 09:26:02 +01:00
Daniel Kolesa
6aa99c0026
eolian: better error information + fix tests
...
This provides better location info when failing to resolve EOLIAN_TYPE_CLASS.
Also fixes tests I forgot to push before.
2014-08-21 09:26:02 +01:00
Daniel Kolesa
c88c0d9347
eolian: fix tests and fix class name comparison in parser
...
This fixes the Eolian testsuite as well as adds a better way to compare where a class
comes from, allowing us to guess EOLIAN_TYPE_CLASS correctly.
2014-08-21 09:26:02 +01:00
Daniel Kolesa
0e4860f215
eolian: add support for referencing classes as types
...
For this purpose, several other changes were made. There can now only be 1 class per file
and the class name has to match the file name. Also, I replaced the list of classes with
a hash, allowing for fast indexing (crucial for parser performance - otherwise it was
very slow).
This also adds a new API, eolian_type_class_get.
2014-08-21 09:26:02 +01:00
Daniel Kolesa
444b62c51c
eolian: fix: remove unused function
2014-07-30 13:33:52 +01:00
Daniel Kolesa
5a603c00b6
eolian: remove irrelevant comments
...
This functionality was already done previously.
2014-07-29 10:05:06 +01:00
Daniel Kolesa
5cc18bfd5a
eolian: fix: remove leftover keywords
2014-07-28 11:57:37 +01:00
Daniel Kolesa
ae1ff34dd6
eolian: fix type parsing
...
I reorganized what's allowed and what is not a bit, particularly, strictened the
rules for named structs and loosened the rules for anonymous structs, and refined
them for void types. It should be all correct now.
2014-07-25 14:51:13 +01:00
Daniel Kolesa
5bdbf4dbb5
eolian: doc typo fix
2014-07-25 14:31:39 +01:00
Daniel Kolesa
bb7f657f90
eolian: clarify documentation
2014-07-25 14:25:45 +01:00
Daniel Kolesa
e2c51100c7
eolian: add test for class methods/properties
...
This also fixes a bug in the Eolian parser that handles class properties.
2014-07-24 14:02:46 +01:00
Daniel Kolesa
94404b403c
eolian: parser support for constructor qualifier
...
This will be needed when the constructors {} section goes away.
2014-07-24 13:01:47 +01:00
Daniel Kolesa
214cfac378
eolian: protected ctors
2014-07-24 12:58:29 +01:00
Daniel Kolesa
a5ad792780
eolian: add support for class functions
2014-07-24 12:05:12 +01:00
Daniel Kolesa
a3182948ad
eolian: use libgen.h basename
2014-07-23 19:37:03 +01:00
Daniel Kolesa
315d5de11d
eolian: use just filename (not path) for eolian_class_get_by_file
2014-07-23 17:15:00 +01:00
Daniel Kolesa
572b7aa92f
eolian: eolian_function_parameter_get -> eolian_function_parameter_get_by_name
2014-07-23 14:22:25 +01:00
Daniel Kolesa
88cc1167e9
eolian: eolian_parameters_get -> eolian_function_parameters_get
2014-07-23 14:17:19 +01:00
Daniel Kolesa
fd0210f30e
eolian: list_get -> get, find_by -> get_by
2014-07-23 14:13:21 +01:00
Daniel Kolesa
e26be1aca6
eolian: fix NULL checks in APIs that return iterators + fix tests
2014-07-23 13:45:25 +01:00
Daniel Zaoui
0efeeaf1c0
Eolian: modify APIs to return iterators instead of lists.
...
The change affects the C and the C++ generators.
2014-07-23 13:45:25 +01:00
Daniel Kolesa
a8c0504ce2
eolian: add comment parsing for typedefs
2014-07-23 10:57:23 +01:00
Daniel Kolesa
77ad5e3297
eolian: fix coverity defects
...
Fixes CID 1228630 and 1228631.
2014-07-23 00:48:27 +01:00
Daniel Kolesa
d8e54e2636
eolian: use new syntax for const methods as per wiki
2014-07-22 17:13:24 +01:00
Daniel Kolesa
ab8fe63afa
eolian: use @protected syntax as per wiki
2014-07-22 16:35:54 +01:00
Daniel Kolesa
4f1f182a89
eolian: lexer line context push/pop/restore/clear
2014-07-22 15:44:23 +01:00
Daniel Kolesa
cbd54f4de0
eolian: include file info in redef errors when different file
2014-07-22 15:01:09 +01:00
Daniel Kolesa
f487d44011
eolian: structs and aliases now contain line/column info for better error messages
2014-07-22 14:48:08 +01:00
Daniel Kolesa
89ca97aceb
eolian: new API: eolian_type_structs/aliases_get_by_file
2014-07-22 13:14:44 +01:00
Daniel Kolesa
b0788a546b
eolian: support for typedefs in c_type_get
2014-07-22 12:11:45 +01:00
Daniel Kolesa
ccf157aa57
eolian: prevent freeing of full named structures that are inside of typedefs and fix a memory leak
2014-07-22 10:39:54 +01:00
Daniel Kolesa
71ae2f2c2e
eolian: another leak fix
2014-07-22 10:22:21 +01:00
Daniel Kolesa
c03a0a2a39
eolian: memory leak fix
2014-07-22 10:15:56 +01:00
Daniel Kolesa
b81e05def5
eolian: new API: eolian_type_alias_find_by_name, remove the old APIs that take an alias name, update tests
2014-07-21 17:12:35 +01:00
Daniel Kolesa
058a3c314c
eolian: rename _types to _aliases
2014-07-21 16:58:12 +01:00
Daniel Kolesa
e797e40478
eolian: remove Eolian_Typedef, use Eolian_Type instead; allow eolian_type_base_type_get on aliases
2014-07-21 16:53:25 +01:00
Daniel Kolesa
6079270c96
eolian: database_type_to_str now respects namespaces (and thus the to-C-type conversion API does too)
2014-07-21 16:08:06 +01:00
Daniel Kolesa
ac7f5d0f79
eolian: fill in full_name and namespaces properly, and allow parsing dots in type names
2014-07-21 15:17:59 +01:00
Daniel Kolesa
460cfd9e34
eolian: type_struct_description, type_struct_file -> type_description, type_file
2014-07-21 14:39:14 +01:00
Daniel Kolesa
7117aad879
eolian: new APIs: eolian_type_full_name_get, eolian_type_naespaces_list_get
2014-07-21 14:27:23 +01:00
Daniel Kolesa
197034bfd7
eolian: type_struct_is_extern -> type_is_extern
2014-07-21 14:14:22 +01:00