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
Daniel Kolesa
9a5c3cfbe2
eolian: remove internal state struct (rely on external Eolian state)
2017-12-06 15:07:31 +01:00
Daniel Kolesa
a39d2e8fe5
eolian: move filenames hashes to 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
7491f9353f
eolian: move enums to temporary state
2017-12-06 15:07:31 +01:00
Daniel Kolesa
51ec796497
eolian: move structs to temporary state
2017-12-06 15:07:31 +01:00
Daniel Kolesa
8428eaa663
eolian: store aliases in temporary state
2017-12-06 15:07:31 +01:00
Daniel Kolesa
9fb3abc662
eolian: store classes in temporary state
2017-12-06 15:07:31 +01:00
Daniel Kolesa
14cd25a8d3
eolian: create an internal temporary state
2017-12-06 15:07:31 +01:00
Daniel Kolesa
8a1f93f698
eolian: pass state where necessary
...
This modifies the API so that global state removal is made
possible. It's still used internally for now but externally
the state is contained.
2017-12-05 16:41:42 +01:00
Daniel Kolesa
2a0f873c84
eolian: pass unit within validation engine
2017-12-05 16:41:42 +01:00
Daniel Kolesa
e83e089765
eolian: contain master state in a larger structure
2017-12-05 16:41:42 +01:00
Daniel Kolesa
53aa99550d
eolian: add API for master unit creation
2017-12-05 16:41:42 +01:00
Daniel Kolesa
6abb24b717
eolian: create an actual unit structure for files
...
Units now form an actual tree stored in their own hash. This will
later replace all global state of Eolian, by introducing a master
unit that you will pass around.
2017-12-05 16:41:42 +01:00
Daniel Kolesa
5c2611d93a
eolian: simplify dependency parsing and cut down on hash lookups
2017-11-08 16:12:40 +01:00
Jean-Philippe Andre
c1d21cef89
eolian: Add some color to those warning messages
...
Note: This is not using eina_log, not entirely sure why, but this
doesn't prevent us from adding some color.
2017-10-31 14:52:34 +09:00
Daniel Kolesa
e55ab81835
eolian: always implicitly validate database and remove its API
2017-09-13 23:58:47 +02:00
Daniel Kolesa
584e91d4f9
eolian: prepare to defer all dependency parses
...
Dependencies are now going to be parsed strictly after the main
file, to allow proper dependency cycle behavior in all places. For
now there is correct parsing of deferred deps but they're not
queued yet.
2017-06-09 15:57:44 +02:00
Daniel Kolesa
cc7b354db2
eolian: silence a unused warning temporarily
2017-05-30 17:15:54 +02:00
Daniel Kolesa
a5e66b3421
eolian: doc token ref resolver now takes unit
2017-05-30 17:15:54 +02:00
Daniel Kolesa
67bc32d9ac
eolian: pass unit to enum get by name
2017-05-30 17:15:54 +02:00
Daniel Kolesa
9c2dae3531
eolian: pass unit to struct get by name
2017-05-30 17:15:54 +02:00
Daniel Kolesa
45a73a0878
eolian: pass unit to class get_by_name/file
2017-05-30 17:15:53 +02:00
Daniel Kolesa
7da0549970
eolian: make eolian_file_parse return unit
2017-05-30 17:15:53 +02:00
Daniel Kolesa
5f4c2f7b79
eolian: initial structure for units
...
Units are Eolian files (eo/eot). Each unit contains information
about its class, dependencies, variables and types. This allows
for saner checking to be done.
2017-05-30 17:15:53 +02:00
Daniel Kolesa
db238d606c
eolian: fix memory leak in doc tokens (CID 1367505)
2017-02-10 16:54:19 +01:00
Daniel Kolesa
6e8b628864
eolian: rmeove dependency on basename/libgen.h/evil
2017-01-21 18:06:00 +01:00
Daniel Kolesa
3dc9d28279
eolian: fill ctor class early on
2017-01-02 15:28:45 +01:00
Daniel Kolesa
7df8625c40
eolian: clean up unnecessary logic in eolian_documentation_string_split
...
Fixes CID1366824.
2016-12-08 13:53:03 +01:00
Daniel Kolesa
2ffc93ddf9
eolian: add a reference resolver
...
New API function eolian_doc_token_ref_get will resolve the kind of
reference in the given token and extract the necessary data you
might need for further use, for example class and function for
methods, or struct and field for struct field. It also supports
event references that will be added into Eolian later.
EFL will be switched to the new resolver (by changing the validator
code) during the next step.
2016-12-06 19:11:17 +01:00
Daniel Kolesa
66b48f8f5d
eolian: remove handling of short refs in tokenizer
...
Already expanded in the main lexer.
2016-12-01 17:22:19 +01:00
Daniel Kolesa
d2105f99d4
eolian: add documentation tokenizer
...
This provides an API to tokenize Eolian docstrings. It does not
yet switch the rest of the infra to it, but it does have tests.
It doesn't verify correctness of references, as that's Eolian's
job. Therefore it's also your job to provide it with strings that
do not contain invalid references. Lua bindings are to come and
a complete switch will be done later.
@feature
2016-12-01 16:37:28 +01:00
Daniel Kolesa
82ef73ca18
eolian: remove type silencing stuff entirely
...
this was useful during transition, but not anymore
2016-10-25 18:02:23 +02:00
Daniel Kolesa
f7e09d3570
eolian: move deferred eo file parsing to the very end
...
Because of this the cyclic check would occasionally have false positives.
By moving deferred eo parsing to the end of the whole parse process, it
can no longer affect the cyclic checker.
@fix
2016-06-15 16:20:45 +01:00
Daniel Kolesa
8df2686d90
eolian: lift restriction on namespace/class name conflicts in library
...
This will allow us to name classes the same as namespaces.
2016-05-06 12:57:01 +01:00
Daniel Kolesa
9b845e7135
eolian: add APIs to get all things of each type
2016-03-29 15:01:17 +01:00