Daniel Kolesa
6abb6e4adc
eolian: remove comma
2014-08-21 09:26:05 +01:00
Daniel Kolesa
4103f3daaf
eolian: NULL the hashes after shutdown
2014-08-21 09:26:05 +01:00
Daniel Kolesa
c85a805d91
elua: eolian binding fix
2014-08-21 09:26:05 +01:00
Daniel Kolesa
44ffdf340c
elua: update eolian bindings
2014-08-21 09:26:05 +01:00
Daniel Kolesa
58a2025c25
eolian: new API: eolian_function_is_constructing
2014-08-21 09:26:05 +01:00
Daniel Kolesa
7372ac3ffb
eolian: prevent potential on-error memory leaks
2014-08-21 09:26:05 +01:00
Daniel Kolesa
ef380c56b6
eolian: support for setting a free function to values in eo files
2014-08-21 09:26:05 +01:00
Daniel Kolesa
d788986fd8
eolian: reduce code duplication
2014-08-21 09:26:05 +01:00
Daniel Kolesa
dbd8e4cec5
eolian: fix tests
2014-08-21 09:26:05 +01:00
Daniel Kolesa
452497eac5
eolian: remove a bunch of pointless stringshare refs + fix in lua
2014-08-21 09:26:05 +01:00
Daniel Kolesa
423cfb5f61
eolian/generator: support for legacy-only functions
2014-08-21 09:26:05 +01:00
Daniel Kolesa
1888448dd4
eolian: legacy only test
2014-08-21 09:26:05 +01:00
Daniel Kolesa
33c39282b1
eolian: support "eo: null;" for legacy only functions/properties
2014-08-21 09:26:05 +01:00
Daniel Kolesa
bbdb655bdb
elua: update lualian
2014-08-21 09:26:05 +01:00
Daniel Kolesa
fd28d213a7
elua: update eolian bindings
2014-08-21 09:26:05 +01:00
Daniel Kolesa
e6954d143d
eolian: drop Eina_Value
...
Because of Eina_Value being less than optimal in our usage, we're dropping it in Eolian.
This simplifies the code and makes it easier to bind to other languages, which
will aid new generators. Also, we're dropping long double support from eo files
and expressions as it causes an ABI breakage in gcc 4.4.
2014-08-21 09:26:05 +01:00
Daniel Kolesa
dbf48c0ecc
eolian: remove the remaining superfluous database_ functions
2014-08-21 09:26:05 +01:00
Daniel Kolesa
97d9bf37fa
eolian: first batch of database_ functions removal (simplifies code)
2014-08-21 09:26:05 +01:00
Daniel Kolesa
913e0f09fa
eolian: get rid of the data hash in Eolian_Function
2014-08-21 09:26:05 +01:00
Daniel Kolesa
60f0450bac
eolian: prevent potential memory leakage on error
2014-08-21 09:26:05 +01:00
Daniel Kolesa
24f618947e
eolian: don't need this one
2014-08-21 09:26:05 +01:00
Daniel Kolesa
1688749ce9
eolian: add support for opaque struct types (+ tests)
2014-08-21 09:26:05 +01:00
Daniel Kolesa
2df5eae338
eolian/generator: support for private and protected events
2014-08-21 09:26:04 +01:00
Daniel Kolesa
93726c86a3
eolian: get rid of eolian_parameter_information_get
2014-08-21 09:26:04 +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
057e01d67f
eolian: API refactoring
...
Start getting rid of the terrible _information_get APIs, starting with events.
2014-08-21 09:26:04 +01:00
Daniel Kolesa
ffbf149da1
eolian: new API: eolian_class_event_scope_get
2014-08-21 09:26:04 +01:00
Daniel Kolesa
a5964f0252
eolian: add comments containing original expressions to generated enum fields
...
This required a new API, eolian_expression_serialize.
2014-08-21 09:26:04 +01:00
Daniel Kolesa
18c2b5082e
eolian: allow usage of stack Eina_Value in expr API
2014-08-21 09:26:04 +01:00
Daniel Kolesa
732e3f417e
eolian: new API: eolian_type_enum_legacy_prefix_set + generator changes
...
This change adds a new API to retrieve the legacy prefix for enum members
and also adds support for generating enums into the C generator. Besides that,
it prevents generation of entire struct contents when the .eo file declares
a named struct inside of a typedef - as the struct itself gets generated later on.
2014-08-21 09:26:04 +01:00
Daniel Kolesa
c81356e2ec
eolian: working more in-depth enum test
2014-08-21 09:26:04 +01:00
Daniel Kolesa
2e3887b994
eolian: struct/enum fixes and initial test for enums
2014-08-21 09:26:04 +01:00
Daniel Kolesa
abca650617
eolian: new APIs
...
This adds eolian_show_enum, eolian_show_global, eolian_show_constant.
2014-08-21 09:26:04 +01:00
Daniel Kolesa
d2205e58f8
eolian: order fields in structs and enums properly
...
I don't know what I was thinking, struct and enum fields need to be ordered
so now we keep a separate list around containing the field names in correct order.
2014-08-21 09:26:04 +01:00
Daniel Kolesa
cf8da3790e
eolian: add missing pieces of minor infra for enum
2014-08-21 09:26:04 +01:00
Daniel Kolesa
e2fb43b7b5
eolian: enum API implementation
...
This implements the previously declared APIs to manipulate enum types. Also,
it implements the appropriate lookups in expression evaluation so that you
can refer to constants and enums inside constant expressions.
2014-08-21 09:26:04 +01:00
Daniel Kolesa
75ee3b031d
eolian: allow namespaces when referring to constants in exprs
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
d4031a21bf
eolian: test for constants/globals
...
Also added API to retrieve value of a variable (forgot about that one)
and made it impossible to create extern constants (doesn't make sense)
as well as made it impossible to give extern globals values.
2014-08-21 09:26:04 +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
cc1988fddd
eolian: expose new variable API
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
a57c729b10
eolian: consume private/protected modifier on events
2014-08-21 09:26:04 +01:00
Daniel Kolesa
1cb8318991
eolian: support for single-line doc comments
2014-08-21 09:26:04 +01:00
Daniel Kolesa
1be7656af6
eolian: expression mode for lexer
...
This way we can only lex expr related tokens (operators etc.) when actually
about to parse an expression. That allows stuff like nested complex types
without the lexer treating the endings as right shift.
2014-08-21 09:26:03 +01:00
Daniel Kolesa
ed28ee6aff
eolian: fix tests
2014-08-21 09:26:03 +01:00
Tom Hacohen
a0c419aa4a
Eolian parser: Allow tagging properties with @constructor.
...
Thanks to Quaker for the exact directions.
2014-08-21 09:26:03 +01:00
Daniel Kolesa
d3aedb5506
eolian: consume the comment token in properties
...
This is to add syntax for later combined get/set property docs functionality.
2014-08-21 09:26:03 +01:00
Daniel Kolesa
459638c2b9
eolian: more consistent syntax
...
"legacy foo" is now "legacy: foo" and "return foo" is now "return: foo".
2014-08-21 09:26:03 +01:00
Daniel Kolesa
7ef5c78792
eolian: fix null serialization
2014-08-21 09:26:03 +01:00