summaryrefslogtreecommitdiff
path: root/src/lib/eolian_cxx/grammar/type_impl.hpp
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2019-07-26 13:02:21 +0200
committerDaniel Kolesa <d.kolesa@samsung.com>2019-07-26 13:02:28 +0200
commitf230dc9dbc08b52a26a8d547cc107fb1818ba5d1 (patch)
tree369cbaaf8ba9f26cf4bafac8185aaae168acbc17 /src/lib/eolian_cxx/grammar/type_impl.hpp
parentd19e435ff9a4716e890d2653af6a1231d8961e37 (diff)
eolian-cxx: Add binbuf and event keywords handling
n Summary: Add support in Eolian-Cxx for binbuf and event keywords and tests. It will generate the C type while the manual binding in C++ for the types do not exist. Reviewers: q66, lauromoura Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9412
Diffstat (limited to '')
-rw-r--r--src/lib/eolian_cxx/grammar/type_impl.hpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/eolian_cxx/grammar/type_impl.hpp b/src/lib/eolian_cxx/grammar/type_impl.hpp
index c5bd4d8363..b8cb7342b6 100644
--- a/src/lib/eolian_cxx/grammar/type_impl.hpp
+++ b/src/lib/eolian_cxx/grammar/type_impl.hpp
@@ -140,6 +140,30 @@ struct visitor_generate
140 r.base_qualifier.qualifier ^= qualifier_info::is_ref; 140 r.base_qualifier.qualifier ^= qualifier_info::is_ref;
141 return replace_base_type(r, " ::efl::eina::strbuf"); 141 return replace_base_type(r, " ::efl::eina::strbuf");
142 }} 142 }}
143 , {"event", nullptr, nullptr, nullptr, [&]
144 {
145 regular_type_def r = regular;
146 r.base_qualifier.qualifier ^= qualifier_info::is_ref;
147 if (r.base_qualifier.qualifier & qualifier_info::is_const)
148 {
149 r.base_qualifier.qualifier ^= qualifier_info::is_const;
150 return replace_base_type(r, " Efl_Event*");
151 }
152 else
153 return replace_base_type(r, " Efl_Event const*");
154 }}
155 , {"binbuf", nullptr, nullptr, nullptr, [&]
156 {
157 regular_type_def r = regular;
158 r.base_qualifier.qualifier ^= qualifier_info::is_ref;
159 if (r.base_qualifier.qualifier & qualifier_info::is_const)
160 {
161 r.base_qualifier.qualifier ^= qualifier_info::is_const;
162 return replace_base_type(r, " Eina_Binbuf*");
163 }
164 else
165 return replace_base_type(r, " Eina_Binbuf const*");
166 }}
143 /* FIXME: handle any_value_ptr */ 167 /* FIXME: handle any_value_ptr */
144 , {"any_value", true, nullptr, nullptr, [&] 168 , {"any_value", true, nullptr, nullptr, [&]
145 { 169 {