Daniel Kolesa
6c0180d7f8
eolian: more stringent and fine-grained validation
2018-03-16 00:14:13 +01:00
Daniel Kolesa
fed326a3ef
eolian: fix unit child management
...
Also pass correct unit to validation for performance.
2018-03-16 00:10:13 +01:00
Daniel Kolesa
2760f047d3
eolian: merge objects in units
2018-03-15 23:32:20 +01:00
Daniel Kolesa
2c59abc878
eolian: fix minor memory leaks
2018-03-15 16:45:23 +01:00
Daniel Kolesa
ab43e61ef6
eolian: turn some state APIs into inlines over unit APIs
2018-03-14 17:20:49 +01:00
Daniel Kolesa
2d0a25c995
eolian: refactor doc ref resolution API
2018-03-14 16:51:11 +01:00
Daniel Kolesa
0f0009cb4f
eolian: expose short_name/namespaces via object
2018-03-12 13:55:21 +01:00
Daniel Kolesa
5cc3abb425
eolian: only merge units on success when parsing all files
2018-03-12 11:37:02 +01:00
Daniel Kolesa
665fc62916
eolian: simplify namespace handling
...
This is mostly a preparation for rework of name(space) APIs.
2018-03-11 17:35:13 +01:00
Daniel Kolesa
342974977f
eolian: resolve to Eolian_Objects instead of voids
2018-03-09 15:25:36 +01:00
Daniel Kolesa
c7fd43ad4e
eolian: return Eolian_Object_Type from ref resolver
...
This needs only one enum and allows for better interop.
2018-03-09 15:25:36 +01:00
Daniel Kolesa
7a4669b1b7
eolian: remove old declaration APIs
2018-03-08 23:59:40 +01:00
Daniel Kolesa
2248131295
eolian: give objects names, and reduce duplication
2018-03-08 19:47:28 +01:00
Daniel Kolesa
917a5216f8
eolian: add APIs to retrieve declarations as objects
...
This will replace the old declarations API.
2018-03-08 19:00:32 +01:00
Daniel Kolesa
9594f09156
eolian: add API to query information about Objects
...
As nearly every Eolian handle is backed by an Eolian_Object,
this information is now publicly exposed and has an API. This
opens up an array of new possibilities for tooling, as you
can now externally query file names, line numbers etc.,
as well as cast arbitrary handles to Eolian_Object pointers
and back.
This will be expanded later and it will replace the Declaration
system, as it's cleaner, better integrated and more versatile.
@feature
2018-03-08 17:32:38 +01:00
Daniel Kolesa
482c5d1ba2
eolian: get rid of old APIs for typedecl retrieval
2018-03-07 13:53:08 +01:00
Daniel Kolesa
f596a97da6
eolian: remove old variable retrieval APIs
2018-03-07 13:25:28 +01:00
Daniel Kolesa
434b0a399d
eolian: remove old class retrieval APIs
2018-03-07 13:08:49 +01:00
Daniel Kolesa
b799fb1959
eolian: remove old APIs for path retrieval
2018-03-02 13:53:34 +01:00
Daniel Kolesa
b45dc505cd
eolian: remove old directory_scan/file_parse APIs
2018-03-02 13:46:57 +01:00
Daniel Kolesa
f8505eddbd
eolian: new APIs for typedecl lookups
2018-03-01 12:42:40 +01:00
Daniel Kolesa
e28e481cca
eolian: new variable lookup APIs
2018-03-01 12:16:28 +01:00
Daniel Kolesa
d6382f3f2b
eolian: new APIs for class retrieval
2018-03-01 12:16:28 +01:00
Daniel Kolesa
7a68ea5edb
eolian: rename path/filename retrieval APIs
2018-02-27 16:12:35 +01:00
Daniel Kolesa
b3596252eb
eolian: rename all_files_parse functions
2018-02-27 16:12:35 +01:00
Daniel Kolesa
9f79d4ff22
eolian: eolian_file_parse -> eolian_state_file_parse
2018-02-27 16:12:35 +01:00
Daniel Kolesa
436f2d3363
eolian: add API to get file name of a unit
2018-02-27 16:12:35 +01:00
Daniel Kolesa
7d001fd93f
eolian: add API to get children of a unit
2018-02-27 16:12:35 +01:00
Daniel Kolesa
e91ae3984a
eolian: add APIs to retrieve units from a state
2018-02-27 16:12:35 +01:00
Daniel Kolesa
f5e3734cdd
eolian: new APIs for directory scanning
2018-02-27 16:12:35 +01:00
Daniel Kolesa
6a284e48c9
eolian: eolian_* -> eolian_state_*, Eolian -> Eolian_State
2018-02-27 16:12:35 +01:00
Daniel Kolesa
a11e70ab3c
eolian: perform correct unit lookups in public API
...
This finally enables looking up things from the current unit
rather than from a backing storage in the Eolian state. This
also means that the benefits of having a unit system will
finally be visible.
2018-02-23 15:34:52 +01:00
Daniel Kolesa
39820fb5f5
eolian: simplify adding/refcounting objects
2018-02-23 15:25:55 +01:00
Daniel Kolesa
1a7dabeb74
eolian: proper in-unit storage for all declarations
...
This makes sure variables are stored as well as types within their
respective units. Also, declarations are now refcounted just like
any other Eolian object.
2018-02-23 15:25:55 +01:00
Daniel Kolesa
26f0c56faf
eolian: fix eina hash usage so it doesn't consume all your memory
...
This makes sure items are checked before being added, so that eina
hash doesn't get confused, add each item thousands of times and
run out of memory.
2018-02-22 11:19:23 +01:00
Daniel Kolesa
76b9f4c224
eolian: prepare for proper unit API by merging unit hashes
...
Eolian now properly merges all unit hashes (e.g. unit A has
children B and C, hashes of B and C are merged into A's hashes
in order to be able to look up B and C's contents via A) and
maintains a (potentially cyclic) children graph.
Not everything is yet added into all hashes, but at least the
building blocks are there.
2018-02-21 17:09:08 +01:00
Daniel Kolesa
a6d0e787e4
eolian: no need to store 'parsed' table anymore either
2018-01-31 19:14:15 +01:00
Daniel Kolesa
8b1f2f34b4
eolian: simplify parsed checking
2018-01-31 19:06:37 +01:00
Daniel Kolesa
f0877c9329
eolian: no need to track currently parsing file anymore
2018-01-31 18:13:29 +01:00
Daniel Kolesa
373392d56e
eolian: remove now unused database init/shutdown
2017-12-15 17:11:11 +01:00
Daniel Kolesa
18e18ca74c
eolian: remove remaining global state (+ modify APIs accordingly)
2017-12-15 17:11:11 +01:00
Daniel Kolesa
d624464ab4
eolian: filename retrieval APIs are read only
2017-12-15 17:11:11 +01:00
Daniel Kolesa
c8aa30e698
eolian: make declaration APIs use units
2017-12-15 17:11:11 +01:00
Daniel Kolesa
9aaa5cf839
eolian: remove _cunit and prepare for returning actual units
2017-12-14 17:31:21 +01:00
Daniel Kolesa
2259b6f16f
eolian: remove parent info from units (actually doesn't make sense)
2017-12-14 16:45:13 +01:00
Daniel Kolesa
535fa0e8f1
eolian: no need to init eina in db
2017-12-07 19:11:58 +01:00
Daniel Kolesa
3ebd1f1506
eolian: store units in state
2017-12-07 19:11:58 +01:00
Daniel Kolesa
8653d8cd73
eolian: properly free all hashes in state free
2017-12-07 19:11:58 +01:00
Daniel Kolesa
e7bf69fc04
eolian: make deferred parsing map non-global
2017-12-07 19:11:58 +01:00
Daniel Kolesa
2343e6cc54
eolian: make parsing/parsed files mapping non-global
2017-12-07 19:11:58 +01:00