Daniel Kolesa
c1afa1b6b5
eolian: add entry point for database validation stage
2014-08-21 16:23:37 +01:00
Daniel Kolesa
4103f3daaf
eolian: NULL the hashes after shutdown
2014-08-21 09:26:05 +01:00
Daniel Kolesa
ad3dbe834b
eolian: API refactoring
...
Remove eolian_implement_information_get. Also, fix some nasty lookup problems.
2014-08-21 09:26:04 +01:00
Daniel Kolesa
be68f9e1fa
eolian: initial parsing code and API declarations for enums
2014-08-21 09:26:04 +01:00
Daniel Kolesa
70bf1eac24
eolian: add infrastructure for globals and constants
...
Nothing parses yet, and no API is exposed. Also, move the remaining instances of file
inside of existing structures to Eolian_Object and parse basename only once.
2014-08-21 09:26:04 +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
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
fd0210f30e
eolian: list_get -> get, find_by -> get_by
2014-07-23 14:13:21 +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
89ca97aceb
eolian: new API: eolian_type_structs/aliases_get_by_file
2014-07-22 13:14:44 +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
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
7b9438e76e
eolian: refactoring: remove Eo_Type_Def
2014-07-10 15:10:24 +01:00
Daniel Kolesa
441455259e
eolian: refactoring: more consistent naming
2014-07-10 14:19:06 +01:00
Daniel Kolesa
37bc20298c
eolian: refactoring: split up eolian_database into individual files
2014-07-10 12:15:29 +01:00
Daniel Kolesa
a26546bc6b
eolian: the entire API is now const correct
2014-07-09 21:31:03 +01:00
Daniel Kolesa
133607936d
eolian: const correctness
2014-07-09 21:07:15 +01:00
Daniel Kolesa
580aea04cd
eolian: refactoring step six
...
Move Eolian_Function as well, plus fix const correctness of several API funcs.
2014-07-09 20:59:31 +01:00
Daniel Kolesa
accdd50f50
eolian: refactoring step five
...
Move from all instances of Eolian_Type to Eolian_Type*.
2014-07-09 17:18:02 +01:00
Daniel Kolesa
1a4f87d365
eolian: refactoring step four
...
Move from all isntances of Eolian_Function_Parameter to Eolian_Function_Parameter* plus const fixes.
2014-07-09 17:01:19 +01:00
Daniel Kolesa
c9119b0c88
eolian: refactoring step three
...
Move from all instances of Eolian_Event and Eolian_Implement to Eolian_Event* and Eolian_Implement*.
2014-07-09 16:45:58 +01:00
Daniel Kolesa
96eaaaf074
eolian: refactoring step two
...
Move from all instances of Eolian_Class to Eolian_Class*.
2014-07-09 16:33:19 +01:00
Daniel Kolesa
ca82befa8a
eolian: refactoring step one
...
Rename the public Eolian types to use a consistent naing scheme.
2014-07-09 16:33:19 +01:00
Daniel Kolesa
8f14930d68
eolian: function dump now uses the actual syntax
2014-07-09 13:49:21 +01:00
Daniel Kolesa
60bf9fcaef
eolian: reduce code duplication
2014-07-09 13:26:20 +01:00
Daniel Kolesa
7b4f4af873
eolian: support for structs in eolian_show
2014-07-09 13:06:46 +01:00
Daniel Kolesa
881a8754ab
eolian: new API: eolian_type_struct_description_get
2014-07-09 12:48:16 +01:00
Daniel Kolesa
295f1f4847
eolian: new API: eolian_type_struct_field_description_get
2014-07-09 12:05:56 +01:00
Daniel Kolesa
cc387bd621
eolian: add EOLIAN_TYPE_REGULAR_STRUCT rather than including the struct keyword in name field
2014-07-09 10:49:52 +01:00
Daniel Kolesa
892c5cba5f
eolian: fix coverity defects
2014-07-09 10:19:42 +01:00
Daniel Kolesa
f6c7242609
eolian: fix base_type_get (only allow for pointers)
2014-07-08 16:56:13 +01:00
Daniel Kolesa
16da25bca2
eolian: support for structs in c_type_get
2014-07-08 16:54:22 +01:00
Daniel Kolesa
6bd0e0ab7f
eolian: better struct support including an API for by-name lookup
2014-07-08 16:42:33 +01:00
Daniel Kolesa
b2db8d3ffa
eolian: new API for struct types
...
This commit adds new Eolian API and proper parsing support for struct types.
Structs can be named (allowed in global context, like typedefs, and in typedefs)
and unnamed (allowed as fields of other structs). This extends the existing type
API to support structs. This is incomplete for now - I still gotta add a way to
query global structs besides other things.
@feature
2014-07-08 16:17:44 +01:00
Daniel Kolesa
826f85675c
eolian: @own -> own
2014-07-08 13:34:25 +01:00
Daniel Kolesa
5168297fdb
eolian: new API: eolian_system_directory_scan, use it
2014-07-07 16:48:54 +01:00
Daniel Kolesa
8e8dbc322e
eolian: scan directories recursively
2014-07-07 14:25:57 +01:00
Daniel Kolesa
84451db638
eolian: have eolian_all_classes_list_get instead of eolian_class_names_list_get
2014-07-03 22:12:31 +01:00
Daniel Kolesa
f12b36e1c1
eolian: some dirty janitoring
2014-07-01 18:25:17 +01:00
Daniel Kolesa
8c44810525
eolian: keep the struct keyword in the regular type name
2014-07-01 18:03:20 +01:00
Daniel Kolesa
39aad55991
eolian: support for void as separate type type
2014-06-30 23:07:32 +01:00
Daniel Kolesa
e84275cc37
eolian: make tests pass
2014-06-30 17:20:39 +01:00
Daniel Kolesa
7b54a0101c
eolian: new type API
...
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-30 17:20:39 +01:00
Daniel Kolesa
74d0cbf29b
eolian: allow multiple subtypes by reorganizing the type structure - preparation for new API
2014-06-30 17:20:39 +01:00
Daniel Kolesa
c0576cee73
eolian: new API: eolian_function_full_c_name_get - reduces duplication of code
2014-06-30 17:20:06 +01:00
Daniel Kolesa
1674d967d2
eolian: free the iterator
2014-06-30 17:20:06 +01:00
Daniel Kolesa
7a8ef6d02a
eolian: introducing support for .eot files
...
.eot files are similar to .eo, but they can't contain classes; all .eot files found in include paths
are parsed and information is added into the database. They're there for typedefs and eventually also
enums, structs and constants.
@feature
2014-06-30 17:20:06 +01:00
Daniel Kolesa
e9f4890747
eolian: fix end-of-file checking, move namespaces from :: to .
2014-06-20 10:46:04 +01:00