eolian_cxx: Add key/value to function_def
authorLauro Moura <lauromoura@expertisesolutions.com.br>
Mon, 28 Oct 2019 23:35:39 +0000 (20:35 -0300)
committerWonki Kim <wonki_.kim@samsung.com>
Mon, 11 Nov 2019 02:20:39 +0000 (11:20 +0900)
commit3002f5a885980e6dd1b13a4f679170b98e4a70e6
treed4948ea8d626f1b86ba9f6732d501490228b66f5
parentfe0fb75cdd7c856f7a43d45aded573d41d85ce93
eolian_cxx: Add key/value to function_def

Summary:
This commit adds explicit eolian key/value/return info to function_def. The
original parameter/return types are kept for compatibility.

parameter/return -> Mimics the behavior of the generated C API (i.e.
single-valued getters have their lone value translated to be their
return type)

explicit_return -> The actual return value for that block in the EO
file.
keys/values -> The values for respectively key and values blocks.

This should help working with properties in the generators instead of
fumbling with paremeter/return directly

Fixes T8431

Test Plan: extra tests in the diff

Reviewers: felipealmeida, brunobelo, segfaultxavi, YOhoho

Reviewed By: brunobelo

Subscribers: cedric, #reviewers, #committers, woohyun

Tags: #efl

Maniphest Tasks: T8431

Differential Revision: https://phab.enlightenment.org/D10494
src/lib/eolian_cxx/grammar/klass_def.hpp
src/tests/eolian_cxx/eolian_cxx_test_binding.cc
src/tests/eolian_cxx/property_holder.eo