summaryrefslogtreecommitdiff
path: root/src/lib/eolian/eolian_database.h (follow)
AgeCommit message (Collapse)Author
2018-03-08eolian: give objects names, and reduce duplicationDaniel Kolesa
2018-03-08eolian: add APIs to retrieve declarations as objectsDaniel Kolesa
This will replace the old declarations API.
2018-03-08eolian: add API to query information about ObjectsDaniel Kolesa
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-02-27eolian: add API to get file name of a unitDaniel Kolesa
2018-02-27eolian: eolian_* -> eolian_state_*, Eolian -> Eolian_StateDaniel Kolesa
2018-02-23eolian: simplify adding/refcounting objectsDaniel Kolesa
2018-02-23eolian: proper in-unit storage for all declarationsDaniel Kolesa
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-22eolian: store types/typedecls in unitsDaniel Kolesa
2018-02-22eolian: add eolian_object_add wrapperDaniel Kolesa
2018-01-31eolian: no need to store 'parsed' table anymore eitherDaniel Kolesa
2018-01-31eolian: no need to track currently parsing file anymoreDaniel Kolesa
2018-01-31eolian: all dependency parsing is now deferredDaniel Kolesa
2018-01-16eolian: do not require unit when stringifying typesDaniel Kolesa
As it is no longer necessary to pass unit when evaluating exprs, it is not necessary to pass it here either. Convert all the APIs to the new style and update all instances in our tree.
2018-01-16eolian: cache enum expr in the databaseDaniel Kolesa
2018-01-16eolian: expose _eval_type to internalsDaniel Kolesa
2018-01-12eolian: type_typedecl_get doesn't need a unitDaniel Kolesa
2018-01-12eolian: store typedecl/class in typeDaniel Kolesa
2017-12-22eolian: remove the toplevel informationDaniel Kolesa
2017-12-15eolian: remove now unused database init/shutdownDaniel Kolesa
2017-12-15eolian: remove remaining global state (+ modify APIs accordingly)Daniel Kolesa
2017-12-14eolian: remove _cunit and prepare for returning actual unitsDaniel Kolesa
2017-12-14eolian: remove parent info from units (actually doesn't make sense)Daniel Kolesa
2017-12-07eolian: store units in stateDaniel Kolesa
2017-12-07eolian: make deferred parsing map non-globalDaniel Kolesa
2017-12-07eolian: make parsing/parsed files mapping non-globalDaniel Kolesa
2017-12-06eolian: remove internal state struct (rely on external Eolian state)Daniel Kolesa
2017-12-06eolian: move filenames hashes to stateDaniel Kolesa
2017-12-06eolian: move constants to temporary stateDaniel Kolesa
2017-12-06eolian: move global vars to temporary stateDaniel Kolesa
2017-12-06eolian: move enums to temporary stateDaniel Kolesa
2017-12-06eolian: move structs to temporary stateDaniel Kolesa
2017-12-06eolian: store aliases in temporary stateDaniel Kolesa
2017-12-06eolian: store classes in temporary stateDaniel Kolesa
2017-12-05eolian: add initial refcounting for database objectsDaniel Kolesa
This will be necessary once the unit system is in (it will be used to keep track of multiple references to objects across units).
2017-12-05eolian: pass unit within validation engineDaniel Kolesa
2017-12-05eolian: contain master state in a larger structureDaniel Kolesa
2017-12-05eolian: create an actual unit structure for filesDaniel Kolesa
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-11-03eolian: disallow ptr() on things that are already pointer-likeDaniel Kolesa
This disallows deeply nested pointers, you can only explicitly ptr() on types that are strictly value types. For a few cases where it was necessary to override this behavior, you can use legacy(ptr(x)) as a temporary measure.
2017-10-31eolian: properly free partsDaniel Kolesa
2017-10-31eolian: fill parts into dbDaniel Kolesa
2017-10-25eolian: make inherits_get return a list of classes, not stringsDaniel Kolesa
Most of the time you need to retrieve the class from the string anyway, so remove this relic of old Eolian and gain some small performance benefits and extra convenience. Subtly breaks API but everything should be updated.
2017-10-25eolian: add part definitionDaniel Kolesa
2017-10-24eolian: validate classes in a recursive mannerDaniel Kolesa
This allows for proper order of validation which will improve our performance when also validating for name duplicates.
2017-10-24eolian: keep track of which objects are validatedDaniel Kolesa
2017-09-22eolian: add a way to query the builtin type of a typeDaniel Kolesa
2017-09-22eolian: remove leftover codeDaniel Kolesa
2017-09-22eolian: remove static_array and terminated_arrayDaniel Kolesa
These types are of questionable value and the API was not entirely thought out - remove for now, and if a legitimate use is found later, they may be readded (with a better API), but typically it seems best to redesign the bad APIs around safe containers...
2017-09-15eolian: remove old ownership systemDaniel Kolesa
2017-09-15eolian: store ownership info in typesDaniel Kolesa
Even though ownership info belongs to params/returns/etc at syntax level, we can still store it in the type and turn several API funcs into one this way.
2017-09-15eolian: parsing of new @owned syntax for complex typesDaniel Kolesa