summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2016-03-18 17:48:47 -0300
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2016-04-21 18:31:53 -0300
commit535a069a2312acc7b217f8150e6c0cfc469fd5f2 (patch)
tree213555fc38de227241adba4b68b7d51a309b2ee1
parent5c87f2762fca7b4adc8940e1d77a4fdc6a214562 (diff)
eolian-cxx: Remove .Base requirement
Remove requirement that class can't have the same name as another class's namespace.
-rw-r--r--src/Makefile_Eolian_Cxx.am5
-rw-r--r--src/bin/eolian_cxx/convert.cc6
-rw-r--r--src/bin/eolian_cxx/eolian_wrappers.hh4
-rw-r--r--src/bin/eolian_cxx/type_lookup.hh46
-rw-r--r--src/bindings/eo_cxx/eo_private.hh8
-rw-r--r--src/tests/ecore_audio_cxx/cxx_compile_test.cc1
-rw-r--r--src/tests/eina_cxx/eina_cxx_test_iterator.cc14
-rw-r--r--src/tests/eolian_cxx/eolian_cxx_test_address_of.cc12
-rw-r--r--src/tests/eolian_cxx/eolian_cxx_test_binding.cc4
-rw-r--r--src/tests/eolian_cxx/eolian_cxx_test_callback.cc10
-rw-r--r--src/tests/eolian_cxx/eolian_cxx_test_inheritance.cc4
-rw-r--r--src/tests/eolian_cxx/eolian_cxx_test_wrapper.cc2
-rw-r--r--src/tests/eolian_cxx/name_name.c8
-rw-r--r--src/tests/eolian_cxx/name_name.eo4
-rw-r--r--src/tests/eolian_cxx/name_name_cxx.cc6
15 files changed, 94 insertions, 40 deletions
diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am
index 89111c1681..c9da3f0b13 100644
--- a/src/Makefile_Eolian_Cxx.am
+++ b/src/Makefile_Eolian_Cxx.am
@@ -72,6 +72,8 @@ tests/eolian_cxx/eolian_cxx_test_callback.cc \
72tests/eolian_cxx/eolian_cxx_test_address_of.cc \ 72tests/eolian_cxx/eolian_cxx_test_address_of.cc \
73tests/eolian_cxx/eolian_cxx_test_wrapper.cc \ 73tests/eolian_cxx/eolian_cxx_test_wrapper.cc \
74tests/eolian_cxx/simple.c \ 74tests/eolian_cxx/simple.c \
75tests/eolian_cxx/name_name.c \
76tests/eolian_cxx/name_name_cxx.cc \
75tests/eolian_cxx/generic.c \ 77tests/eolian_cxx/generic.c \
76tests/eolian_cxx/eolian_cxx_test_inheritance.cc \ 78tests/eolian_cxx/eolian_cxx_test_inheritance.cc \
77tests/eolian_cxx/eolian_cxx_test_generate.cc \ 79tests/eolian_cxx/eolian_cxx_test_generate.cc \
@@ -91,6 +93,9 @@ tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-b.$(OBJEXT): tests/eolian_cxx
91tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-c.$(OBJEXT): tests/eolian_cxx/c.eo.c tests/eolian_cxx/c.eo.h 93tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-c.$(OBJEXT): tests/eolian_cxx/c.eo.c tests/eolian_cxx/c.eo.h
92tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-d.$(OBJEXT): tests/eolian_cxx/d.eo.c tests/eolian_cxx/d.eo.h 94tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-d.$(OBJEXT): tests/eolian_cxx/d.eo.c tests/eolian_cxx/d.eo.h
93 95
96tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-name_name.$(OBJEXT): tests/eolian_cxx/name_name.eo.c tests/eolian_cxx/name_name.eo.h
97tests/eolian_cxx/tests_eolian_cxx_eolian_cxx_suite-name_name_cxx.$(OBJEXT): tests/eolian_cxx/name_name.eo.h tests/eolian_cxx/name_name.eo.hh
98
94CLEANFILES += \ 99CLEANFILES += \
95tests/eolian_cxx/callback.eo.hh \ 100tests/eolian_cxx/callback.eo.hh \
96tests/eolian_cxx/callback.eo.c \ 101tests/eolian_cxx/callback.eo.c \
diff --git a/src/bin/eolian_cxx/convert.cc b/src/bin/eolian_cxx/convert.cc
index 1b42e66799..97e88c9171 100644
--- a/src/bin/eolian_cxx/convert.cc
+++ b/src/bin/eolian_cxx/convert.cc
@@ -38,7 +38,7 @@ add_ancestor_recursive(const char* klass_name, std::set<std::string>& ancestor)
38 return; 38 return;
39 } 39 }
40 40
41 ancestor.insert(class_format_cxx(safe_lower(klass_name))); 41 ancestor.insert(class_format_cxx(safe_str(klass_name)));
42 42
43 Eina_Iterator* inheritances = ::eolian_class_inherits_get(klass); 43 Eina_Iterator* inheritances = ::eolian_class_inherits_get(klass);
44 void* curr = 0; 44 void* curr = 0;
@@ -236,7 +236,7 @@ convert_eolian_inheritances(efl::eolian::eo_class& cls, Eolian_Class const& klas
236 EINA_ITERATOR_FOREACH(inheritances, curr) 236 EINA_ITERATOR_FOREACH(inheritances, curr)
237 { 237 {
238 const char* klass_name = static_cast<const char*>(curr); 238 const char* klass_name = static_cast<const char*>(curr);
239 cls.parents.push_back(class_format_cxx(safe_lower(klass_name))); 239 cls.parents.push_back(class_format_cxx(safe_str(klass_name)));
240 add_ancestor_recursive(klass_name, ancestors); 240 add_ancestor_recursive(klass_name, ancestors);
241 } 241 }
242 eina_iterator_free(inheritances); 242 eina_iterator_free(inheritances);
@@ -275,6 +275,8 @@ convert_eolian_class_new(Eolian_Class const& klass)
275 cls.type = class_type(klass); 275 cls.type = class_type(klass);
276 cls.name = class_name(klass); 276 cls.name = class_name(klass);
277 cls.name_space = class_namespace_full(klass); 277 cls.name_space = class_namespace_full(klass);
278 if(cls.name_space.empty())
279 cls.name_space = "nonamespace";
278 cls.eo_name = class_eo_name(klass); 280 cls.eo_name = class_eo_name(klass);
279 cls.comment = convert_comments_class(klass); 281 cls.comment = convert_comments_class(klass);
280 return cls; 282 return cls;
diff --git a/src/bin/eolian_cxx/eolian_wrappers.hh b/src/bin/eolian_cxx/eolian_wrappers.hh
index 0b78020188..8be5f9bec6 100644
--- a/src/bin/eolian_cxx/eolian_wrappers.hh
+++ b/src/bin/eolian_cxx/eolian_wrappers.hh
@@ -59,7 +59,7 @@ class_base_file(Eolian_Class const& klass)
59inline std::string 59inline std::string
60class_name(Eolian_Class const& klass) 60class_name(Eolian_Class const& klass)
61{ 61{
62 return safe_lower(::eolian_class_name_get(&klass)); 62 return ::eolian_class_name_get(&klass);
63} 63}
64 64
65inline std::string 65inline std::string
@@ -347,7 +347,7 @@ event_create(Eolian_Class const& klass, const Eolian_Event *event_)
347 event.is_beta = (::eolian_event_is_beta(event_) != EINA_FALSE); 347 event.is_beta = (::eolian_event_is_beta(event_) != EINA_FALSE);
348 event.name = normalize_spaces(name_); 348 event.name = normalize_spaces(name_);
349 event.eo_name = safe_upper 349 event.eo_name = safe_upper
350 (find_replace(class_full_name(klass), ".", "_") + "_EVENT_" + event.name); 350 (find_replace(safe_lower(class_full_name(klass)), ".", "_") + "_EVENT_" + event.name);
351 /* FIXME: use doc api */ 351 /* FIXME: use doc api */
352 event.comment = safe_str(""); 352 event.comment = safe_str("");
353 } 353 }
diff --git a/src/bin/eolian_cxx/type_lookup.hh b/src/bin/eolian_cxx/type_lookup.hh
index 7f73a5edda..57d7c940b6 100644
--- a/src/bin/eolian_cxx/type_lookup.hh
+++ b/src/bin/eolian_cxx/type_lookup.hh
@@ -27,14 +27,30 @@ extern const lookup_table_type type_lookup_table;
27inline std::string 27inline std::string
28class_format_cxx(std::string const& fullname) 28class_format_cxx(std::string const& fullname)
29{ 29{
30 std::string s = fullname; 30 auto current = fullname.begin(), last = fullname.end();
31 auto found = s.find("."); 31 auto found = std::find(current, last, '.');
32 while (found != std::string::npos) 32 std::string new_string;
33 { 33 if(found == last)
34 s.replace(found, 1, "::"); 34 new_string = "nonamespace::" + fullname;
35 found = s.find("."); 35 else
36 } 36 while (current != last)
37 return s; 37 {
38 if(found == last)
39 {
40 new_string.insert(new_string.end(), current, found);
41 current = found;
42 }
43 else
44 {
45 new_string += std::tolower(*current);
46 new_string.insert(new_string.end(), std::next(current), found);
47 new_string = safe_lower(new_string);
48 new_string += "::";
49 current = std::next(found);
50 found = std::find(current, last, '.');
51 }
52 }
53 return new_string;
38} 54}
39 55
40inline bool 56inline bool
@@ -60,7 +76,16 @@ type_from_eolian(Eolian_Type const& type)
60 x.category = efl::eolian::eolian_type::simple_; 76 x.category = efl::eolian::eolian_type::simple_;
61 x.is_class = true; 77 x.is_class = true;
62 x.binding_requires_optional = false; 78 x.binding_requires_optional = false;
63 x.binding = "::" + class_format_cxx(safe_lower(safe_str(::eolian_class_full_name_get(klass)))); 79 x.binding = "::" + class_format_cxx(safe_str(::eolian_class_full_name_get(klass)));
80 x.native = "::";
81 x.native += safe_str( ::eolian_class_full_name_get(klass));
82 std::replace(x.native.begin(), x.native.end(), '.', '_');
83
84 if( ::eolian_type_is_const(base_type))
85 x.native += " const";
86
87 x.native += '*';
88
64 89
65 Eina_Stringshare* klass_file = ::eolian_class_file_get(klass); 90 Eina_Stringshare* klass_file = ::eolian_class_file_get(klass);
66 if (klass_file) 91 if (klass_file)
@@ -69,7 +94,8 @@ type_from_eolian(Eolian_Type const& type)
69 } 94 }
70 } 95 }
71 96
72 x.native = normalize_spaces(safe_str(::eolian_type_c_type_get(&type))); 97 if(x.native.empty())
98 x.native = normalize_spaces(safe_str(::eolian_type_c_type_get(&type)));
73 x.is_own = ::eolian_type_is_own(&type); 99 x.is_own = ::eolian_type_is_own(&type);
74 x.is_const = ::eolian_type_is_const(&type); 100 x.is_const = ::eolian_type_is_const(&type);
75 return x; 101 return x;
diff --git a/src/bindings/eo_cxx/eo_private.hh b/src/bindings/eo_cxx/eo_private.hh
index 5f1448a582..ec4d92cd5b 100644
--- a/src/bindings/eo_cxx/eo_private.hh
+++ b/src/bindings/eo_cxx/eo_private.hh
@@ -9,7 +9,7 @@
9#include "eo_ops.hh" 9#include "eo_ops.hh"
10 10
11namespace eo { 11namespace eo {
12struct base; 12struct Base;
13} 13}
14 14
15namespace efl { namespace eo { namespace detail { 15namespace efl { namespace eo { namespace detail {
@@ -89,7 +89,7 @@ Eo_Class const* do_eo_class_new(Eo_Class_Description& class_desc)
89} 89}
90 90
91template <typename T> struct operation_description_class_size; 91template <typename T> struct operation_description_class_size;
92template <> struct operation_description_class_size< ::eo::base> : std::integral_constant<std::size_t, 0u> {}; 92template <> struct operation_description_class_size< ::eo::Base> : std::integral_constant<std::size_t, 0u> {};
93 93
94/// @internal 94/// @internal
95/// 95///
@@ -136,7 +136,7 @@ namespace detail {
136template <typename T> struct operations; 136template <typename T> struct operations;
137 137
138template <> 138template <>
139struct operations< ::eo::base> { template <typename T> struct type {}; }; 139struct operations< ::eo::Base> { template <typename T> struct type {}; };
140 140
141/// @internal 141/// @internal
142/// 142///
@@ -165,7 +165,7 @@ struct Inherit_Private_Data
165 165
166namespace efl { namespace eo { namespace detail { 166namespace efl { namespace eo { namespace detail {
167template <typename T> 167template <typename T>
168int initialize_operation_description(efl::eo::detail::tag< ::eo::base> 168int initialize_operation_description(efl::eo::detail::tag< ::eo::Base>
169 , Eo_Op_Description* ops) 169 , Eo_Op_Description* ops)
170{ 170{
171 (void)ops; 171 (void)ops;
diff --git a/src/tests/ecore_audio_cxx/cxx_compile_test.cc b/src/tests/ecore_audio_cxx/cxx_compile_test.cc
index dfc4cd6425..2f1421efd9 100644
--- a/src/tests/ecore_audio_cxx/cxx_compile_test.cc
+++ b/src/tests/ecore_audio_cxx/cxx_compile_test.cc
@@ -3,6 +3,7 @@
3#endif 3#endif
4 4
5#include <Ecore_Audio.h> 5#include <Ecore_Audio.h>
6#include <ecore_audio.eo.h>
6#include <Ecore_Audio.hh> 7#include <Ecore_Audio.hh>
7 8
8#include <iostream> 9#include <iostream>
diff --git a/src/tests/eina_cxx/eina_cxx_test_iterator.cc b/src/tests/eina_cxx/eina_cxx_test_iterator.cc
index 3fe4c9d2d1..493fa9a944 100644
--- a/src/tests/eina_cxx/eina_cxx_test_iterator.cc
+++ b/src/tests/eina_cxx/eina_cxx_test_iterator.cc
@@ -37,22 +37,22 @@ START_TEST(eina_cxx_eo_iterator_equal)
37 efl::eina::eina_init eina_init; 37 efl::eina::eina_init eina_init;
38 efl::eo::eo_init eo_init; 38 efl::eo::eo_init eo_init;
39 39
40 efl::eina::list<simple> list; 40 efl::eina::list<nonamespace::Simple> list;
41 41
42 simple const w1; 42 nonamespace::Simple const w1;
43 simple const w2; 43 nonamespace::Simple const w2;
44 simple const w3; 44 nonamespace::Simple const w3;
45 simple const w4; 45 nonamespace::Simple const w4;
46 46
47 list.push_back(w1); 47 list.push_back(w1);
48 list.push_back(w2); 48 list.push_back(w2);
49 list.push_back(w3); 49 list.push_back(w3);
50 list.push_back(w4); 50 list.push_back(w4);
51 51
52 efl::eina::iterator<simple> iterator = list.ibegin() 52 efl::eina::iterator<nonamespace::Simple> iterator = list.ibegin()
53 , last_iterator = list.iend(); 53 , last_iterator = list.iend();
54 54
55 simple const result[] = {w1, w2, w3, w4}; 55 nonamespace::Simple const result[] = {w1, w2, w3, w4};
56 56
57 ck_assert(std::equal(iterator, last_iterator, result)); 57 ck_assert(std::equal(iterator, last_iterator, result));
58} 58}
diff --git a/src/tests/eolian_cxx/eolian_cxx_test_address_of.cc b/src/tests/eolian_cxx/eolian_cxx_test_address_of.cc
index 9a1283be6c..f73de98f97 100644
--- a/src/tests/eolian_cxx/eolian_cxx_test_address_of.cc
+++ b/src/tests/eolian_cxx/eolian_cxx_test_address_of.cc
@@ -2,6 +2,8 @@
2# include <config.h> 2# include <config.h>
3#endif 3#endif
4 4
5#include <Eo.hh>
6
5#include <a.eo.hh> 7#include <a.eo.hh>
6#include <b.eo.hh> 8#include <b.eo.hh>
7#include <c.eo.hh> 9#include <c.eo.hh>
@@ -13,12 +15,12 @@ START_TEST(eolian_cxx_test_addess_of_conversions)
13{ 15{
14 efl::eo::eo_init init; 16 efl::eo::eo_init init;
15 17
16 d d_obj; 18 nonamespace::D d_obj;
17 19
18 a* a_ptr = &d_obj; 20 nonamespace::A* a_ptr = &d_obj;
19 b* b_ptr = &d_obj; 21 nonamespace::B* b_ptr = &d_obj;
20 c* c_ptr = &d_obj; 22 nonamespace::C* c_ptr = &d_obj;
21 d* d_ptr = &d_obj; 23 nonamespace::D* d_ptr = &d_obj;
22 24
23 fail_unless(a_ptr == (void*) b_ptr); 25 fail_unless(a_ptr == (void*) b_ptr);
24 fail_unless(a_ptr == (void*) c_ptr); 26 fail_unless(a_ptr == (void*) c_ptr);
diff --git a/src/tests/eolian_cxx/eolian_cxx_test_binding.cc b/src/tests/eolian_cxx/eolian_cxx_test_binding.cc
index 4a189bb058..b705e67732 100644
--- a/src/tests/eolian_cxx/eolian_cxx_test_binding.cc
+++ b/src/tests/eolian_cxx/eolian_cxx_test_binding.cc
@@ -12,7 +12,7 @@ START_TEST(eolian_cxx_test_binding_constructor_only_required)
12 12
13 bool called1 = false; 13 bool called1 = false;
14 14
15 generic g( 15 nonamespace::Generic g(
16 g.required_ctor_a(1), 16 g.required_ctor_a(1),
17 g.required_ctor_b(std::bind([&called1] { called1 = true; })) 17 g.required_ctor_b(std::bind([&called1] { called1 = true; }))
18 ); 18 );
@@ -32,7 +32,7 @@ START_TEST(eolian_cxx_test_binding_constructor_all_optionals)
32 bool called1 = false; 32 bool called1 = false;
33 bool called2 = false; 33 bool called2 = false;
34 34
35 generic g( 35 nonamespace::Generic g(
36 g.required_ctor_a(2), 36 g.required_ctor_a(2),
37 g.required_ctor_b(std::bind([&called1] { called1 = true; })), 37 g.required_ctor_b(std::bind([&called1] { called1 = true; })),
38 g.optional_ctor_a(3), 38 g.optional_ctor_a(3),
diff --git a/src/tests/eolian_cxx/eolian_cxx_test_callback.cc b/src/tests/eolian_cxx/eolian_cxx_test_callback.cc
index 6ffaf50590..c22141307f 100644
--- a/src/tests/eolian_cxx/eolian_cxx_test_callback.cc
+++ b/src/tests/eolian_cxx/eolian_cxx_test_callback.cc
@@ -20,7 +20,7 @@ START_TEST(eolian_cxx_test_callback_method)
20{ 20{
21 efl::eo::eo_init i; 21 efl::eo::eo_init i;
22 22
23 callback c; 23 nonamespace::Callback c;
24 24
25 bool called1 = false, called2 = false; 25 bool called1 = false, called2 = false;
26 26
@@ -36,7 +36,7 @@ START_TEST(eolian_cxx_test_callback_event_add)
36{ 36{
37 efl::eo::eo_init i; 37 efl::eo::eo_init i;
38 38
39 callback c; 39 nonamespace::Callback c;
40 40
41 bool called1 = false, called2 = false; 41 bool called1 = false, called2 = false;
42 42
@@ -53,7 +53,7 @@ START_TEST(eolian_cxx_test_callback_event_del)
53{ 53{
54 efl::eo::eo_init i; 54 efl::eo::eo_init i;
55 55
56 callback c; 56 nonamespace::Callback c;
57 57
58 int called1 = 0, called2 = 0, called3 = 0, called4 = 0; 58 int called1 = 0, called2 = 0, called3 = 0, called4 = 0;
59 59
@@ -119,7 +119,7 @@ START_TEST(eolian_cxx_test_global_callback)
119 119
120 bool called = false; 120 bool called = false;
121 121
122 callback::test_global_callbacks(std::bind([&called] { called = true; })); 122 nonamespace::Callback::test_global_callbacks(std::bind([&called] { called = true; }));
123 123
124 fail_if(!called); 124 fail_if(!called);
125} 125}
@@ -128,7 +128,7 @@ END_TEST
128START_TEST(eolian_cxx_test_disconnect_inside_callback) 128START_TEST(eolian_cxx_test_disconnect_inside_callback)
129{ 129{
130 efl::eo::eo_init i; 130 efl::eo::eo_init i;
131 callback c; 131 nonamespace::Callback c;
132 132
133 std::vector<long> capture_me; 133 std::vector<long> capture_me;
134 int times_called = 0; 134 int times_called = 0;
diff --git a/src/tests/eolian_cxx/eolian_cxx_test_inheritance.cc b/src/tests/eolian_cxx/eolian_cxx_test_inheritance.cc
index 9804a80359..8af557a2c5 100644
--- a/src/tests/eolian_cxx/eolian_cxx_test_inheritance.cc
+++ b/src/tests/eolian_cxx/eolian_cxx_test_inheritance.cc
@@ -10,7 +10,7 @@
10#include "eolian_cxx_suite.h" 10#include "eolian_cxx_suite.h"
11 11
12struct bar 12struct bar
13: efl::eo::inherit<bar, simple> 13: efl::eo::inherit<bar, nonamespace::Simple>
14{ 14{
15 bar() 15 bar()
16 : inherit_base(efl::eo::parent = nullptr) 16 : inherit_base(efl::eo::parent = nullptr)
@@ -23,7 +23,7 @@ struct bar
23 } 23 }
24}; 24};
25 25
26void foo(simple is) 26void foo(nonamespace::Simple is)
27{ 27{
28 fail_if(is.simple_get()); 28 fail_if(is.simple_get());
29} 29}
diff --git a/src/tests/eolian_cxx/eolian_cxx_test_wrapper.cc b/src/tests/eolian_cxx/eolian_cxx_test_wrapper.cc
index bf794a7eb7..3441a8975b 100644
--- a/src/tests/eolian_cxx/eolian_cxx_test_wrapper.cc
+++ b/src/tests/eolian_cxx/eolian_cxx_test_wrapper.cc
@@ -14,7 +14,7 @@ START_TEST(eolian_cxx_test_wrapper_size)
14 efl::eo::eo_init init; 14 efl::eo::eo_init init;
15 15
16 ::efl::eo::concrete b(nullptr); 16 ::efl::eo::concrete b(nullptr);
17 ::callback c; 17 ::nonamespace::Callback c;
18 18
19 fail_if(sizeof(b) != sizeof(Eo*)); 19 fail_if(sizeof(b) != sizeof(Eo*));
20 fail_if(sizeof(b) != sizeof(c)); 20 fail_if(sizeof(b) != sizeof(c));
diff --git a/src/tests/eolian_cxx/name_name.c b/src/tests/eolian_cxx/name_name.c
new file mode 100644
index 0000000000..50b65d9ee8
--- /dev/null
+++ b/src/tests/eolian_cxx/name_name.c
@@ -0,0 +1,8 @@
1
2#include <Eo.h>
3
4struct Name_Name_Data {};
5typedef struct Name_Name_Data Name_Name_Data;
6
7#include "name_name.eo.h"
8#include "name_name.eo.c"
diff --git a/src/tests/eolian_cxx/name_name.eo b/src/tests/eolian_cxx/name_name.eo
new file mode 100644
index 0000000000..fd88a5e8c1
--- /dev/null
+++ b/src/tests/eolian_cxx/name_name.eo
@@ -0,0 +1,4 @@
1class Name.Name {
2 legacy_prefix: null;
3}
4
diff --git a/src/tests/eolian_cxx/name_name_cxx.cc b/src/tests/eolian_cxx/name_name_cxx.cc
new file mode 100644
index 0000000000..99087548f1
--- /dev/null
+++ b/src/tests/eolian_cxx/name_name_cxx.cc
@@ -0,0 +1,6 @@
1
2#include <Eo.h>
3
4#include "name_name.eo.h"
5#include "name_name.eo.hh"
6