Daniel Kolesa
3bddb2b6c4
eolian: commit all changes into staging area first
2018-03-22 18:01:31 +01:00
Daniel Kolesa
db04d3f670
eolian: introduce main and staging areas properly
...
The state is now correctly divided. No merging is performed yet,
which is to be done next.
2018-03-22 17:56:52 +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
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
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
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
18e18ca74c
eolian: remove remaining global state (+ modify APIs accordingly)
2017-12-15 17:11:11 +01:00
Daniel Kolesa
9a5c3cfbe2
eolian: remove internal state struct (rely on external Eolian state)
2017-12-06 15:07:31 +01:00
Daniel Kolesa
a25327c62e
eolian: move constants to temporary state
2017-12-06 15:07:31 +01:00
Daniel Kolesa
21db23f702
eolian: move global vars to temporary state
2017-12-06 15:07:31 +01:00
Daniel Kolesa
cd12f938af
eolian: remove support for old doc style on types and vars
2015-06-11 16:52:45 +01:00
Daniel Kolesa
b2c47737b1
eolian: properly fill and free all doc fields
2015-06-03 15:35:20 +01:00
Daniel Kolesa
522c021a36
eolian: initial exposed declaration API - not yet very useful
...
This API allows you to retrieve a list of declarations in the file
(classes, types, vars) in the order they were declared in.
@feature
2015-06-01 14:32:45 +01:00
Daniel Kolesa
8ec7d1cc48
eolian: much better and stricter redefinition checking
...
We can now check redefinitions between different types of declarations,
such as redefinition of struct as variable etc.
@feature
2015-05-15 15:11:10 +01:00
Mike Blumenkrantz
5375e154fe
fix config.h inclusion across the tree
2014-09-23 15:56:46 -04:00
Daniel Kolesa
f8cef784a8
eolian: less messy initialization checks
2014-09-12 14:20:52 +01:00
Daniel Kolesa
65332eb3ca
eolian: var parsing (global and constant)
...
This makes the API effectively functional. Also, I added new API
eolian_variable_is_extern to match structs and typedefs.
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