path: root/src/bin/eolian/eo_generator.c (unfollow)
AgeCommit message (Collapse)Author
2014-07-09eolian: refactoring step fiveDaniel Kolesa
Move from all instances of Eolian_Type to Eolian_Type*.
2014-07-09eolian: refactoring step fourDaniel Kolesa
Move from all isntances of Eolian_Function_Parameter to Eolian_Function_Parameter* plus const fixes.
2014-07-09eolian: refactoring step threeDaniel Kolesa
Move from all instances of Eolian_Event and Eolian_Implement to Eolian_Event* and Eolian_Implement*.
2014-07-09eolian: refactoring step twoDaniel Kolesa
Move from all instances of Eolian_Class to Eolian_Class*.
2014-07-08eolian/generator: add asterisk on inout tooDaniel Kolesa
2014-06-30eolian/generator: shadow fixDaniel Kolesa
2014-06-30eolian: _CLASS -> _CLASS/INTERFACE/MIXINDaniel Kolesa
2014-06-30eolian: new type APIDaniel Kolesa
This new API supports function pointer types, multiple type subtypes, const attribute without parsing the name string, own attribute for any partial type and more. This commit also updates the C and C++ generators so that they compile and generate correct code. @feature
2014-06-30eolian: new API: eolian_function_full_c_name_get - reduces duplication of codeDaniel Kolesa
2014-06-20eolian/generator: public api func name deduplication, spank tasn if it breaksDaniel Kolesa
2014-06-10Eolian/Generator: use a specific define for the Eo APIs.Daniel Zaoui
The generation of EOAPI instead of EAPI for the Eo functions is only needed for code readibility.
2014-06-09Eolian/Generator: Fix comments generation.Daniel Zaoui
This patch: - removes the @def from Doxygen, as it is not correct for API functions. - fixes the generation of class comments. When no class description is supplied, no comment should be added.
2014-06-08Eolian/Generator: concentrate the function name calculation to oneDaniel Zaoui
place. Instead of having the calculation (class name + function name + set/get) in many places in the code, it is now in one place and accessible via a function environment structure.
2014-06-08Eolian/Generator: remove unused code.Daniel Zaoui
The removed code was needed for Eo1 and is no more necessary.
2014-06-05Eolian: rename internal files.Daniel Zaoui
This files were needed to be renamed a long time ago :-)
2014-06-03Fix gcc warning about uninitialized variable.Guillaume Friloux
2014-06-03Eolian: Use class name and not prefix in the class macro.Daniel Zaoui
So for example a class called Eo_Base with prefix: eo, used to be generated to EO_CLASS instead of EO_BASE_CLASS.
2014-06-03Eolian: Fix bad behavior when the .eo is incorrectDaniel Zaoui
In this case, the section 'implements' contains bad information about the function to override. If the first (at least) function is correct, it will never fail but use the last correct information retrieved from the database. The patch fixes it by checking the result of the database function eolian_implement_information_get. @fix
2014-05-29Eolian: modify 'implement' API parameters.Daniel Zaoui
The function eolian_implement_information_get was returning strings for the class and the function. It was written in this way at the beginning because it was not needed to verify the correctness of the class and the function. Now that we have the namespace feature, this function must check it, meaning that the class and the function are now known. So we can return them instead of returning the strings. The generators had to find the class from the classname. It is no more needed. The C++ generator has been adapted to this new API.
2014-05-29Eolian: modify generators to use internal variables environment.Daniel Zaoui
2014-05-27Eolian: fix coverity issues.Daniel Zaoui
CID 1216274 CID 1216275 CID 1216276 CID 1216277 CID 1216278 CID 1216279 CID 1216280
2014-05-26Eolian/Generator: add support to namespaces.Daniel Zaoui
The C generators now support namespaces generation.
2014-05-26Eolian: modify API to allow future scalabilityDaniel Zaoui
Until now, the functions giving access to class information were taking the class name as parameter. Except the fact that we needed to search into a hash table for the internal class structure, no flexibility is possible. This change consists in modifying most of the APIs using the class name with a new Eolian_Class type and adapt the code of the C and C++ generators accordingly.
2014-05-14Eolian/Generator: fix the class description generation.Daniel Zaoui
The class description was not used during the generation of the legacy and Eo headers.
2014-04-23Eolian: Remove useless functions.Daniel Zaoui
Default ctor/dtor are considered as implemented functions and no more as special functions.
2014-04-23Eolian/Generator: support --eo.Daniel Zaoui
--eo1 is still supported but it will be removed soon.
2014-04-18Eolian/Generator: Fix coverity issues.Daniel Zaoui
Fix CID 1203409 Fix CID 1203410
2014-04-17Eolian/Generator: remove Eo1 generationDaniel Zaoui
2014-04-13Eolian: fix generation of Eo2 functions definitions.Daniel Zaoui
When keys are used in property, the Eo2 macro was not well chosen.
2014-04-10Eolian: Fix generation of Eo APIs.Daniel Zaoui
When return is forced to void, even if the function contains only one parameter, the return type will be void.
2014-04-10Eolian: add support for functions scope.Daniel Zaoui
This patch adds support for protected functions. In the .eo file, the scope (public by default) has to be added before the function name e.g: protected foo ... To access the protected APIs, #define (CLASS)_PROTECTED is needed e.g: #define ELM_BUTTON_PROTECTED
2014-04-10Eolian: generation of Eo2.Daniel Zaoui
The generation of Eo2 can be enabled by defining EO flag in common_funcs.h.
2014-04-08Eolian: rename enums.Daniel Zaoui
Add the EOLIAN namespace to the function types.
2014-04-02Eolian/Lexer: support data type for events.Daniel Zaoui
2014-04-02Eolian: Explicit generation of either method or property in implemented ↵Yossi Kantor
2014-03-27Eolian: extend const attributes for parameters to 'set' properties.Daniel Zaoui
When const is used for parameters into 'set' properties, the generator doesn't prepend 'const'. This fixes this bad behavior.
2014-03-27Eolian: fix virtual pure support.Daniel Zaoui
When a property needs be defined as virtual pure, its type could not be given. It means that, even it was explicit that e.g only the get property if virtual pure, both (set and get) were considered as virtual pure. @fix
2014-03-24Eolian/Generator: more stuff.Daniel Zaoui
Better support of empty events/funcs lists Better support of class constructor Preparation for Eo2: separate Eo1 specific code and common code
2014-03-24Eolian/Generator: detach Eo1 from Legacy generator.Daniel Zaoui
This step is needed to clean the code and to prepare the integration of Eo2 inside Eolian. Except the eo_do invocation, there is no reason why legacy has to know about Eo.
2014-03-19eolian/eo1_generator: Fix leak in error pathStefan Schmidt
We allocated tmpstr so we should free it before we return in the error case. CID 1191926
2014-03-19Eolian/Generator: Don't generate sub ids structure if not needed.Daniel Zaoui
If no methods and properties are declared for a class, no base id and sub_ids structure are generated. @fix
2014-03-19Eolian/Generator: fix generation of events.Daniel Zaoui
2014-03-16Eolian/Generator: Retrieve the Eo prefix from the database instead ofDaniel Zaoui
guessing it.
2014-03-16Eolian/Generator: Improved event generationYossi Kantor
Line breaks in source files and extern definitions of events in header files.
2014-03-13Eolian/Generator: fix generation of headers for const params.Daniel Zaoui
When a parameter of a property is const for get but not for set, the .eo file indicates it by setting a flag 'const' for this parameter. The generation was checking this flag for C files generation but not for H files.
2014-03-11Eolian/Generator: fix generation for return values.Daniel Zaoui
- Remove space between type and variable if a star is present. - Initialize return value to NULL before eo_do. It is needed in case the eo_do invocation fails (NULL object...). - Add const to the internal return value if needed.
2014-03-11Eolian/Generator: fix type when no data type exists.Daniel Zaoui
When data is set as "null", the generator was writing for this data variable "void * *_pd" instead of "void *_pd".
2014-03-11Eolian/Generator: fix for virtual pure implementationsDaniel Zaoui
2014-03-11Eolian: Support of unsigned short as int in va_argYossi Kantor
2014-03-10Eolian/Generator: support NULL pointers for return values.Daniel Zaoui
When an Eo operation returns a value, this one is stored in the last parameter as an out parameter. In case the caller doesn't set a pointer there, the storing will be done in a NULL pointer and will bring to a segfault. The generator has been modified to handle this case. Now, if the ret pointer is NULL, the value will not be returned.