summaryrefslogtreecommitdiff
path: root/src/lib/eolian_cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eolian_cxx')
-rw-r--r--src/lib/eolian_cxx/Eolian_Cxx.hh15
-rw-r--r--src/lib/eolian_cxx/grammar/address_of.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/alternative.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/attribute_conditional.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/attribute_reorder.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/attribute_replace.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/attributes.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/base_class_definition.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/blacklist.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/c_type.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/case.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/class_declaration.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/class_definition.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/class_implementation.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/container.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/context.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/converting_argument.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/eps.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/function_declaration.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/function_definition.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/generator.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/header.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/header_guards.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/header_include_directive.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/html_escaped_string.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/ignore_warning.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/impl_header.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/implementation_include_directive.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/indentation.hpp26
-rw-r--r--src/lib/eolian_cxx/grammar/integral.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/keyword.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/klass_def.hpp105
-rw-r--r--src/lib/eolian_cxx/grammar/kleene.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/list.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/meta.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/namespace.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/parameter.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/part_declaration.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/part_implementation.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/qualifier_def.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/sequence.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/string.hpp17
-rw-r--r--src/lib/eolian_cxx/grammar/type.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/type_function_declaration.hpp15
-rw-r--r--src/lib/eolian_cxx/grammar/type_impl.hpp24
-rw-r--r--src/lib/eolian_cxx/grammar/type_traits.hpp17
-rw-r--r--src/lib/eolian_cxx/grammar/types_definition.hpp15
47 files changed, 774 insertions, 45 deletions
diff --git a/src/lib/eolian_cxx/Eolian_Cxx.hh b/src/lib/eolian_cxx/Eolian_Cxx.hh
index 2eb9736..23a75a8 100644
--- a/src/lib/eolian_cxx/Eolian_Cxx.hh
+++ b/src/lib/eolian_cxx/Eolian_Cxx.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2#ifndef EOLIAN_CXX_LIB_HH 17#ifndef EOLIAN_CXX_LIB_HH
3#define EOLIAN_CXX_LIB_HH 18#define EOLIAN_CXX_LIB_HH
diff --git a/src/lib/eolian_cxx/grammar/address_of.hpp b/src/lib/eolian_cxx/grammar/address_of.hpp
index 6c6b977..4ae19bc 100644
--- a/src/lib/eolian_cxx/grammar/address_of.hpp
+++ b/src/lib/eolian_cxx/grammar/address_of.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_ADDRESS_OF_HH 16#ifndef EOLIAN_CXX_ADDRESS_OF_HH
2#define EOLIAN_CXX_ADDRESS_OF_HH 17#define EOLIAN_CXX_ADDRESS_OF_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/alternative.hpp b/src/lib/eolian_cxx/grammar/alternative.hpp
index 844f3d2..708efd6 100644
--- a/src/lib/eolian_cxx/grammar/alternative.hpp
+++ b/src/lib/eolian_cxx/grammar/alternative.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_ALTERNATIVE_HH 16#ifndef EOLIAN_CXX_ALTERNATIVE_HH
2#define EOLIAN_CXX_ALTERNATIVE_HH 17#define EOLIAN_CXX_ALTERNATIVE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/attribute_conditional.hpp b/src/lib/eolian_cxx/grammar/attribute_conditional.hpp
index 5934564..fc2057f 100644
--- a/src/lib/eolian_cxx/grammar/attribute_conditional.hpp
+++ b/src/lib/eolian_cxx/grammar/attribute_conditional.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_ATTRIBUTE_CONDITIONAL_HH 16#ifndef EOLIAN_CXX_ATTRIBUTE_CONDITIONAL_HH
2#define EOLIAN_CXX_ATTRIBUTE_CONDITIONAL_HH 17#define EOLIAN_CXX_ATTRIBUTE_CONDITIONAL_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/attribute_reorder.hpp b/src/lib/eolian_cxx/grammar/attribute_reorder.hpp
index a14e3a9..9267e14 100644
--- a/src/lib/eolian_cxx/grammar/attribute_reorder.hpp
+++ b/src/lib/eolian_cxx/grammar/attribute_reorder.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_ATTRIBUTE_REORDER_HH 16#ifndef EOLIAN_CXX_ATTRIBUTE_REORDER_HH
2#define EOLIAN_CXX_ATTRIBUTE_REORDER_HH 17#define EOLIAN_CXX_ATTRIBUTE_REORDER_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/attribute_replace.hpp b/src/lib/eolian_cxx/grammar/attribute_replace.hpp
index fee7328..9478fc1 100644
--- a/src/lib/eolian_cxx/grammar/attribute_replace.hpp
+++ b/src/lib/eolian_cxx/grammar/attribute_replace.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_ATTRIBUTE_REPLACE_HH 16#ifndef EOLIAN_CXX_ATTRIBUTE_REPLACE_HH
2#define EOLIAN_CXX_ATTRIBUTE_REPLACE_HH 17#define EOLIAN_CXX_ATTRIBUTE_REPLACE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/attributes.hpp b/src/lib/eolian_cxx/grammar/attributes.hpp
index b3efcce..13c57b7 100644
--- a/src/lib/eolian_cxx/grammar/attributes.hpp
+++ b/src/lib/eolian_cxx/grammar/attributes.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_ATTRIBUTES_HH 16#ifndef EOLIAN_CXX_ATTRIBUTES_HH
2#define EOLIAN_CXX_ATTRIBUTES_HH 17#define EOLIAN_CXX_ATTRIBUTES_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/base_class_definition.hpp b/src/lib/eolian_cxx/grammar/base_class_definition.hpp
index f8a704d..59a87ff 100644
--- a/src/lib/eolian_cxx/grammar/base_class_definition.hpp
+++ b/src/lib/eolian_cxx/grammar/base_class_definition.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_BASE_CLASS_DEFINITION_HH 16#ifndef EOLIAN_CXX_BASE_CLASS_DEFINITION_HH
2#define EOLIAN_CXX_BASE_CLASS_DEFINITION_HH 17#define EOLIAN_CXX_BASE_CLASS_DEFINITION_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/blacklist.hpp b/src/lib/eolian_cxx/grammar/blacklist.hpp
index 21332b6..3ce531c 100644
--- a/src/lib/eolian_cxx/grammar/blacklist.hpp
+++ b/src/lib/eolian_cxx/grammar/blacklist.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_BLACKLIST_HH 16#ifndef EOLIAN_CXX_BLACKLIST_HH
2#define EOLIAN_CXX_BLACKLIST_HH 17#define EOLIAN_CXX_BLACKLIST_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/c_type.hpp b/src/lib/eolian_cxx/grammar/c_type.hpp
index e680b38..540b4db 100644
--- a/src/lib/eolian_cxx/grammar/c_type.hpp
+++ b/src/lib/eolian_cxx/grammar/c_type.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_C_TYPE_HH 16#ifndef EOLIAN_CXX_C_TYPE_HH
2#define EOLIAN_CXX_C_TYPE_HH 17#define EOLIAN_CXX_C_TYPE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/case.hpp b/src/lib/eolian_cxx/grammar/case.hpp
index c18d4ab..6599f45 100644
--- a/src/lib/eolian_cxx/grammar/case.hpp
+++ b/src/lib/eolian_cxx/grammar/case.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_CASE_HH 16#ifndef EOLIAN_CXX_CASE_HH
2#define EOLIAN_CXX_CASE_HH 17#define EOLIAN_CXX_CASE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/class_declaration.hpp b/src/lib/eolian_cxx/grammar/class_declaration.hpp
index de9c4a6..7273c52 100644
--- a/src/lib/eolian_cxx/grammar/class_declaration.hpp
+++ b/src/lib/eolian_cxx/grammar/class_declaration.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_CLASS_DECLARATION_HH 16#ifndef EOLIAN_CXX_CLASS_DECLARATION_HH
2#define EOLIAN_CXX_CLASS_DECLARATION_HH 17#define EOLIAN_CXX_CLASS_DECLARATION_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/class_definition.hpp b/src/lib/eolian_cxx/grammar/class_definition.hpp
index 569a62f..2cea908 100644
--- a/src/lib/eolian_cxx/grammar/class_definition.hpp
+++ b/src/lib/eolian_cxx/grammar/class_definition.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_CLASS_DEFINITION_HH 16#ifndef EOLIAN_CXX_CLASS_DEFINITION_HH
2#define EOLIAN_CXX_CLASS_DEFINITION_HH 17#define EOLIAN_CXX_CLASS_DEFINITION_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/class_implementation.hpp b/src/lib/eolian_cxx/grammar/class_implementation.hpp
index 7428335..744a2f0 100644
--- a/src/lib/eolian_cxx/grammar/class_implementation.hpp
+++ b/src/lib/eolian_cxx/grammar/class_implementation.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_CLASS_IMPLEMENTATION_HH 16#ifndef EOLIAN_CXX_CLASS_IMPLEMENTATION_HH
2#define EOLIAN_CXX_CLASS_IMPLEMENTATION_HH 17#define EOLIAN_CXX_CLASS_IMPLEMENTATION_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/container.hpp b/src/lib/eolian_cxx/grammar/container.hpp
index ca86044..0e598e9 100644
--- a/src/lib/eolian_cxx/grammar/container.hpp
+++ b/src/lib/eolian_cxx/grammar/container.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_CONTAINER_HH 16#ifndef EOLIAN_CXX_CONTAINER_HH
2#define EOLIAN_CXX_CONTAINER_HH 17#define EOLIAN_CXX_CONTAINER_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/context.hpp b/src/lib/eolian_cxx/grammar/context.hpp
index 6fb171a..9e175a8 100644
--- a/src/lib/eolian_cxx/grammar/context.hpp
+++ b/src/lib/eolian_cxx/grammar/context.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_CONTEXT_HH 16#ifndef EOLIAN_CXX_CONTEXT_HH
2#define EOLIAN_CXX_CONTEXT_HH 17#define EOLIAN_CXX_CONTEXT_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/converting_argument.hpp b/src/lib/eolian_cxx/grammar/converting_argument.hpp
index 6975743..778c6b3 100644
--- a/src/lib/eolian_cxx/grammar/converting_argument.hpp
+++ b/src/lib/eolian_cxx/grammar/converting_argument.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_CONVERTING_ARGUMENT_HH 16#ifndef EOLIAN_CXX_CONVERTING_ARGUMENT_HH
2#define EOLIAN_CXX_CONVERTING_ARGUMENT_HH 17#define EOLIAN_CXX_CONVERTING_ARGUMENT_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/eps.hpp b/src/lib/eolian_cxx/grammar/eps.hpp
index d396cbf..6416bc9 100644
--- a/src/lib/eolian_cxx/grammar/eps.hpp
+++ b/src/lib/eolian_cxx/grammar/eps.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_EPS_HH 16#ifndef EOLIAN_CXX_EPS_HH
2#define EOLIAN_CXX_EPS_HH 17#define EOLIAN_CXX_EPS_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/function_declaration.hpp b/src/lib/eolian_cxx/grammar/function_declaration.hpp
index 1ae63df..297651a 100644
--- a/src/lib/eolian_cxx/grammar/function_declaration.hpp
+++ b/src/lib/eolian_cxx/grammar/function_declaration.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2#ifndef EOLIAN_CXX_FUNCTION_DECLARATION_HH 17#ifndef EOLIAN_CXX_FUNCTION_DECLARATION_HH
3#define EOLIAN_CXX_FUNCTION_DECLARATION_HH 18#define EOLIAN_CXX_FUNCTION_DECLARATION_HH
diff --git a/src/lib/eolian_cxx/grammar/function_definition.hpp b/src/lib/eolian_cxx/grammar/function_definition.hpp
index c5de8ce..9e3e631 100644
--- a/src/lib/eolian_cxx/grammar/function_definition.hpp
+++ b/src/lib/eolian_cxx/grammar/function_definition.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_FUNCTION_DEFINITION_HH 16#ifndef EOLIAN_CXX_FUNCTION_DEFINITION_HH
2#define EOLIAN_CXX_FUNCTION_DEFINITION_HH 17#define EOLIAN_CXX_FUNCTION_DEFINITION_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/generator.hpp b/src/lib/eolian_cxx/grammar/generator.hpp
index 25fff51..881786a 100644
--- a/src/lib/eolian_cxx/grammar/generator.hpp
+++ b/src/lib/eolian_cxx/grammar/generator.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_GENERATOR_HH 16#ifndef EOLIAN_CXX_GENERATOR_HH
2#define EOLIAN_CXX_GENERATOR_HH 17#define EOLIAN_CXX_GENERATOR_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/header.hpp b/src/lib/eolian_cxx/grammar/header.hpp
index f749584..0d14f93 100644
--- a/src/lib/eolian_cxx/grammar/header.hpp
+++ b/src/lib/eolian_cxx/grammar/header.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_HEADER_HH 16#ifndef EOLIAN_CXX_HEADER_HH
2#define EOLIAN_CXX_HEADER_HH 17#define EOLIAN_CXX_HEADER_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/header_guards.hpp b/src/lib/eolian_cxx/grammar/header_guards.hpp
index a5a353b..bee478c 100644
--- a/src/lib/eolian_cxx/grammar/header_guards.hpp
+++ b/src/lib/eolian_cxx/grammar/header_guards.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_HEADER_GUARDS_HH 16#ifndef EOLIAN_CXX_HEADER_GUARDS_HH
2#define EOLIAN_CXX_HEADER_GUARDS_HH 17#define EOLIAN_CXX_HEADER_GUARDS_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/header_include_directive.hpp b/src/lib/eolian_cxx/grammar/header_include_directive.hpp
index 6b717b6..f191f77 100644
--- a/src/lib/eolian_cxx/grammar/header_include_directive.hpp
+++ b/src/lib/eolian_cxx/grammar/header_include_directive.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_HEADER_INCLUDE_DIRECTIVE_HH 16#ifndef EOLIAN_CXX_HEADER_INCLUDE_DIRECTIVE_HH
2#define EOLIAN_CXX_HEADER_INCLUDE_DIRECTIVE_HH 17#define EOLIAN_CXX_HEADER_INCLUDE_DIRECTIVE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/html_escaped_string.hpp b/src/lib/eolian_cxx/grammar/html_escaped_string.hpp
index 5bbad79..e5faa3b 100644
--- a/src/lib/eolian_cxx/grammar/html_escaped_string.hpp
+++ b/src/lib/eolian_cxx/grammar/html_escaped_string.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_HTML_ESCAPED_STRING_HH 16#ifndef EOLIAN_CXX_HTML_ESCAPED_STRING_HH
2#define EOLIAN_CXX_HTML_ESCAPED_STRING_HH 17#define EOLIAN_CXX_HTML_ESCAPED_STRING_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/ignore_warning.hpp b/src/lib/eolian_cxx/grammar/ignore_warning.hpp
index d3d2a6e..867ae81 100644
--- a/src/lib/eolian_cxx/grammar/ignore_warning.hpp
+++ b/src/lib/eolian_cxx/grammar/ignore_warning.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_IGNORE_WARNING_HH 16#ifndef EOLIAN_CXX_IGNORE_WARNING_HH
2#define EOLIAN_CXX_IGNORE_WARNING_HH 17#define EOLIAN_CXX_IGNORE_WARNING_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/impl_header.hpp b/src/lib/eolian_cxx/grammar/impl_header.hpp
index 0827eb3..a715bc7 100644
--- a/src/lib/eolian_cxx/grammar/impl_header.hpp
+++ b/src/lib/eolian_cxx/grammar/impl_header.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_IMPL_HEADER_HH 16#ifndef EOLIAN_CXX_IMPL_HEADER_HH
2#define EOLIAN_CXX_IMPL_HEADER_HH 17#define EOLIAN_CXX_IMPL_HEADER_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/implementation_include_directive.hpp b/src/lib/eolian_cxx/grammar/implementation_include_directive.hpp
index bba8b4c..4997e29 100644
--- a/src/lib/eolian_cxx/grammar/implementation_include_directive.hpp
+++ b/src/lib/eolian_cxx/grammar/implementation_include_directive.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_IMPLEMENTATION_INCLUDE_DIRECTIVE_HH 16#ifndef EOLIAN_CXX_IMPLEMENTATION_INCLUDE_DIRECTIVE_HH
2#define EOLIAN_CXX_IMPLEMENTATION_INCLUDE_DIRECTIVE_HH 17#define EOLIAN_CXX_IMPLEMENTATION_INCLUDE_DIRECTIVE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/indentation.hpp b/src/lib/eolian_cxx/grammar/indentation.hpp
index 347974f..3bf5d07 100644
--- a/src/lib/eolian_cxx/grammar/indentation.hpp
+++ b/src/lib/eolian_cxx/grammar/indentation.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_GRAMMAR_INDENTATION_HPP 16#ifndef EOLIAN_CXX_GRAMMAR_INDENTATION_HPP
2#define EOLIAN_CXX_GRAMMAR_INDENTATION_HPP 17#define EOLIAN_CXX_GRAMMAR_INDENTATION_HPP
3 18
@@ -38,6 +53,11 @@ struct scope_tab_generator
38 53
39 int n; 54 int n;
40 int m; 55 int m;
56
57 explicit operator std::string() const
58 {
59 return std::string(n * m, ' ');
60 }
41}; 61};
42 62
43template <> 63template <>
@@ -56,6 +76,12 @@ struct scope_tab_terminal
56 { 76 {
57 return {1}; 77 return {1};
58 } 78 }
79
80 explicit operator std::string() const
81 {
82 return static_cast<std::string>(scope_tab_generator{1});
83 }
84
59} const scope_tab = {}; 85} const scope_tab = {};
60 86
61template <> 87template <>
diff --git a/src/lib/eolian_cxx/grammar/integral.hpp b/src/lib/eolian_cxx/grammar/integral.hpp
index 95cb2f0..2086a0d 100644
--- a/src/lib/eolian_cxx/grammar/integral.hpp
+++ b/src/lib/eolian_cxx/grammar/integral.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_INTEGRAL_HH 16#ifndef EOLIAN_CXX_INTEGRAL_HH
2#define EOLIAN_CXX_INTEGRAL_HH 17#define EOLIAN_CXX_INTEGRAL_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/keyword.hpp b/src/lib/eolian_cxx/grammar/keyword.hpp
index b64201e..6a529ef 100644
--- a/src/lib/eolian_cxx/grammar/keyword.hpp
+++ b/src/lib/eolian_cxx/grammar/keyword.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_KEYWORD_HH 16#ifndef EOLIAN_CXX_KEYWORD_HH
2#define EOLIAN_CXX_KEYWORD_HH 17#define EOLIAN_CXX_KEYWORD_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp b/src/lib/eolian_cxx/grammar/klass_def.hpp
index 0dd6779..86fb61e 100644
--- a/src/lib/eolian_cxx/grammar/klass_def.hpp
+++ b/src/lib/eolian_cxx/grammar/klass_def.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_KLASS_DEF_HH 16#ifndef EOLIAN_CXX_KLASS_DEF_HH
2#define EOLIAN_CXX_KLASS_DEF_HH 17#define EOLIAN_CXX_KLASS_DEF_HH
3 18
@@ -245,7 +260,8 @@ struct documentation_def
245 str = eolian_documentation_description_get(eolian_doc); 260 str = eolian_documentation_description_get(eolian_doc);
246 if (str) { 261 if (str) {
247 description = str; 262 description = str;
248 full_text += "\n" + description; 263 // Separate summary from description with a blank line
264 full_text += "\n\n" + description;
249 } 265 }
250 266
251 str = eolian_documentation_since_get(eolian_doc); 267 str = eolian_documentation_since_get(eolian_doc);
@@ -763,16 +779,35 @@ enum class member_scope
763 779
764struct function_def 780struct function_def
765{ 781{
766 klass_name klass; // Klass information for function_def as method 782 // Klass information for function_def as method
767 type_def return_type; 783 klass_name klass;
784 // Eolian name of the function
768 std::string name; 785 std::string name;
786
787 // Actual return type as expected in the C version of this function.
788 // For property getters, this could be the type of the single
789 // value it holds
790 type_def return_type;
791 // Parameters of this function as the C implementation of it
769 std::vector<parameter_def> parameters; 792 std::vector<parameter_def> parameters;
793
794 // Original return type as declared in the Eo.
795 type_def explicit_return_type;
796 // Original Eolian keys of this function. Used only for properties
797 std::vector<parameter_def> keys;
798 // Original Eolian values of this function. Used only for properties
799 std::vector<parameter_def> values;
800
801 // Name of this function in the C api
770 std::string c_name; 802 std::string c_name;
771 std::string filename; 803 std::string filename;
772 std::vector<std::string> namespaces; // Namespaces for top-level function pointers 804 // Namespaces for top-level function pointers
805 std::vector<std::string> namespaces;
806
773 documentation_def documentation; 807 documentation_def documentation;
774 documentation_def return_documentation; 808 documentation_def return_documentation;
775 documentation_def property_documentation; 809 documentation_def property_documentation;
810
776 function_type type; 811 function_type type;
777 member_scope scope; 812 member_scope scope;
778 bool is_beta; 813 bool is_beta;
@@ -786,6 +821,8 @@ struct function_def
786 && lhs.return_type == rhs.return_type 821 && lhs.return_type == rhs.return_type
787 && lhs.name == rhs.name 822 && lhs.name == rhs.name
788 && lhs.parameters == rhs.parameters 823 && lhs.parameters == rhs.parameters
824 && lhs.keys == rhs.keys
825 && lhs.values == rhs.values
789 && lhs.c_name == rhs.c_name 826 && lhs.c_name == rhs.c_name
790 && lhs.filename == rhs.filename 827 && lhs.filename == rhs.filename
791 && lhs.namespaces == rhs.namespaces 828 && lhs.namespaces == rhs.namespaces
@@ -803,46 +840,25 @@ struct function_def
803 return !(lhs == rhs); 840 return !(lhs == rhs);
804 } 841 }
805 function_def() = default; 842 function_def() = default;
806 function_def(klass_name _klass,
807 type_def _return_type, std::string const& _name,
808 std::vector<parameter_def> const& _parameters,
809 std::string const& _c_name,
810 std::string _filename,
811 std::vector<std::string> const& _namespaces,
812 documentation_def _documentation,
813 documentation_def _return_documentation,
814 documentation_def _property_documentation,
815 function_type _type,
816 member_scope _scope,
817 bool _is_beta = false,
818 bool _is_protected = false,
819 bool _is_static = false,
820 Eolian_Unit const* unit = nullptr)
821 : klass(_klass), return_type(_return_type), name(_name),
822 parameters(_parameters), c_name(_c_name), filename(_filename),
823 namespaces(_namespaces),
824 documentation(_documentation),
825 return_documentation(_return_documentation),
826 property_documentation(_property_documentation),
827 type(_type),
828 scope(_scope),
829 is_beta(_is_beta), is_protected(_is_protected),
830 is_static(_is_static),
831 unit(unit) {}
832 843
833 function_def( ::Eolian_Function const* function, Eolian_Function_Type type, Eolian_Typedecl const* tp, Eolian_Unit const* unit) 844 function_def( ::Eolian_Function const* function, Eolian_Function_Type type, Eolian_Typedecl const* tp, Eolian_Unit const* unit)
834 : return_type(void_), unit(unit) 845 : return_type(void_), explicit_return_type(void_), unit(unit)
835 { 846 {
836 Eolian_Type const* r_type = ::eolian_function_return_type_get(function, type); 847 Eolian_Type const* r_type = ::eolian_function_return_type_get(function, type);
837 name = ::eolian_function_name_get(function); 848 name = ::eolian_function_name_get(function);
838 return_documentation = eolian_function_return_documentation_get(function, type); 849 return_documentation = eolian_function_return_documentation_get(function, type);
839 scope = static_cast<member_scope>(eolian_function_scope_get(function, type)); 850 scope = static_cast<member_scope>(eolian_function_scope_get(function, type));
840 if(r_type) 851
841 return_type.set(r_type 852 if(r_type)
842 , unit 853 {
843 , eolian_function_return_c_type_get(function, type) 854 return_type.set(r_type
844 , eolian_function_return_is_move(function, type) 855 , unit
845 , eolian_function_return_is_by_ref(function, type)); 856 , eolian_function_return_c_type_get(function, type)
857 , eolian_function_return_is_move(function, type)
858 , eolian_function_return_is_by_ref(function, type));
859 explicit_return_type = return_type;
860 }
861
846 if(type == EOLIAN_METHOD || type == EOLIAN_FUNCTION_POINTER) 862 if(type == EOLIAN_METHOD || type == EOLIAN_FUNCTION_POINTER)
847 { 863 {
848 for(efl::eina::iterator<Eolian_Function_Parameter> param_iterator ( ::eolian_function_parameters_get(function)) 864 for(efl::eina::iterator<Eolian_Function_Parameter> param_iterator ( ::eolian_function_parameters_get(function))
@@ -861,9 +877,10 @@ struct function_def
861 ( ::eolian_property_keys_get(function, type)) 877 ( ::eolian_property_keys_get(function, type))
862 , param_last; param_iterator != param_last; ++param_iterator) 878 , param_last; param_iterator != param_last; ++param_iterator)
863 { 879 {
864 parameters.push_back({&*param_iterator, unit}); 880 parameter_def param = {&*param_iterator, unit};
881 parameters.push_back(param);
882 keys.push_back(param);
865 } 883 }
866 std::vector<parameter_def> values;
867 for(efl::eina::iterator<Eolian_Function_Parameter> param_iterator 884 for(efl::eina::iterator<Eolian_Function_Parameter> param_iterator
868 ( ::eolian_property_values_get(function, type)) 885 ( ::eolian_property_values_get(function, type))
869 , param_last; param_iterator != param_last; ++param_iterator) 886 , param_last; param_iterator != param_last; ++param_iterator)
@@ -1800,7 +1817,7 @@ template <>
1800struct is_tuple<attributes::parameter_def> : std::true_type {}; 1817struct is_tuple<attributes::parameter_def> : std::true_type {};
1801template <> 1818template <>
1802struct is_tuple<attributes::event_def> : std::true_type {}; 1819struct is_tuple<attributes::event_def> : std::true_type {};
1803 1820
1804} 1821}
1805 1822
1806} } } 1823} } }
diff --git a/src/lib/eolian_cxx/grammar/kleene.hpp b/src/lib/eolian_cxx/grammar/kleene.hpp
index 0aff2ba..2ac1ce1 100644
--- a/src/lib/eolian_cxx/grammar/kleene.hpp
+++ b/src/lib/eolian_cxx/grammar/kleene.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_KLEENE_HH 16#ifndef EOLIAN_CXX_KLEENE_HH
2#define EOLIAN_CXX_KLEENE_HH 17#define EOLIAN_CXX_KLEENE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/list.hpp b/src/lib/eolian_cxx/grammar/list.hpp
index f87a771..2274e17 100644
--- a/src/lib/eolian_cxx/grammar/list.hpp
+++ b/src/lib/eolian_cxx/grammar/list.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_LIST_HH 16#ifndef EOLIAN_CXX_LIST_HH
2#define EOLIAN_CXX_LIST_HH 17#define EOLIAN_CXX_LIST_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/meta.hpp b/src/lib/eolian_cxx/grammar/meta.hpp
index 1a06f94..cb67534 100644
--- a/src/lib/eolian_cxx/grammar/meta.hpp
+++ b/src/lib/eolian_cxx/grammar/meta.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_META_HH_ 16#ifndef EOLIAN_CXX_META_HH_
2#define EOLIAN_CXX_META_HH_ 17#define EOLIAN_CXX_META_HH_
3 18
diff --git a/src/lib/eolian_cxx/grammar/namespace.hpp b/src/lib/eolian_cxx/grammar/namespace.hpp
index e16edca..473187e 100644
--- a/src/lib/eolian_cxx/grammar/namespace.hpp
+++ b/src/lib/eolian_cxx/grammar/namespace.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_NAMESPACES_HH 16#ifndef EOLIAN_CXX_NAMESPACES_HH
2#define EOLIAN_CXX_NAMESPACES_HH 17#define EOLIAN_CXX_NAMESPACES_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/parameter.hpp b/src/lib/eolian_cxx/grammar/parameter.hpp
index c82345b..1410a0b 100644
--- a/src/lib/eolian_cxx/grammar/parameter.hpp
+++ b/src/lib/eolian_cxx/grammar/parameter.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_PARAMETER_HH 16#ifndef EOLIAN_CXX_PARAMETER_HH
2#define EOLIAN_CXX_PARAMETER_HH 17#define EOLIAN_CXX_PARAMETER_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/part_declaration.hpp b/src/lib/eolian_cxx/grammar/part_declaration.hpp
index 30646fc..d13cac6 100644
--- a/src/lib/eolian_cxx/grammar/part_declaration.hpp
+++ b/src/lib/eolian_cxx/grammar/part_declaration.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_PART_DECLARATION_HH 16#ifndef EOLIAN_CXX_PART_DECLARATION_HH
2#define EOLIAN_CXX_PART_DECLARATION_HH 17#define EOLIAN_CXX_PART_DECLARATION_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/part_implementation.hpp b/src/lib/eolian_cxx/grammar/part_implementation.hpp
index ec4da28..2e9f91e 100644
--- a/src/lib/eolian_cxx/grammar/part_implementation.hpp
+++ b/src/lib/eolian_cxx/grammar/part_implementation.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_PART_IMPLEMENTATION_HH 16#ifndef EOLIAN_CXX_PART_IMPLEMENTATION_HH
2#define EOLIAN_CXX_PART_IMPLEMENTATION_HH 17#define EOLIAN_CXX_PART_IMPLEMENTATION_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/qualifier_def.hpp b/src/lib/eolian_cxx/grammar/qualifier_def.hpp
index 0823010..b7afc1b 100644
--- a/src/lib/eolian_cxx/grammar/qualifier_def.hpp
+++ b/src/lib/eolian_cxx/grammar/qualifier_def.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_QUALIFIER_DEF_HH 16#ifndef EOLIAN_CXX_QUALIFIER_DEF_HH
2#define EOLIAN_CXX_QUALIFIER_DEF_HH 17#define EOLIAN_CXX_QUALIFIER_DEF_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/sequence.hpp b/src/lib/eolian_cxx/grammar/sequence.hpp
index dfffbf3..d85cb56 100644
--- a/src/lib/eolian_cxx/grammar/sequence.hpp
+++ b/src/lib/eolian_cxx/grammar/sequence.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_SEQUENCE_HH 16#ifndef EOLIAN_CXX_SEQUENCE_HH
2#define EOLIAN_CXX_SEQUENCE_HH 17#define EOLIAN_CXX_SEQUENCE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/string.hpp b/src/lib/eolian_cxx/grammar/string.hpp
index 06cce17..71530af 100644
--- a/src/lib/eolian_cxx/grammar/string.hpp
+++ b/src/lib/eolian_cxx/grammar/string.hpp
@@ -1,8 +1,25 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_STRING_HH 16#ifndef EOLIAN_CXX_STRING_HH
2#define EOLIAN_CXX_STRING_HH 17#define EOLIAN_CXX_STRING_HH
3 18
4#include <cstdlib> 19#include <cstdlib>
5#include <cstring> 20#include <cstring>
21#include <algorithm>
22
6 23
7#include "grammar/generator.hpp" 24#include "grammar/generator.hpp"
8#include "grammar/attributes.hpp" 25#include "grammar/attributes.hpp"
diff --git a/src/lib/eolian_cxx/grammar/type.hpp b/src/lib/eolian_cxx/grammar/type.hpp
index 61e0e55..195a191 100644
--- a/src/lib/eolian_cxx/grammar/type.hpp
+++ b/src/lib/eolian_cxx/grammar/type.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_TYPE_HH 16#ifndef EOLIAN_CXX_TYPE_HH
2#define EOLIAN_CXX_TYPE_HH 17#define EOLIAN_CXX_TYPE_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/type_function_declaration.hpp b/src/lib/eolian_cxx/grammar/type_function_declaration.hpp
index fcd094f..123f257 100644
--- a/src/lib/eolian_cxx/grammar/type_function_declaration.hpp
+++ b/src/lib/eolian_cxx/grammar/type_function_declaration.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_TYPE_FUNCTION_DECLARATION_HH 16#ifndef EOLIAN_CXX_TYPE_FUNCTION_DECLARATION_HH
2#define EOLIAN_CXX_TYPE_FUNCTION_DECLARATION_HH 17#define EOLIAN_CXX_TYPE_FUNCTION_DECLARATION_HH
3 18
diff --git a/src/lib/eolian_cxx/grammar/type_impl.hpp b/src/lib/eolian_cxx/grammar/type_impl.hpp
index 959f654..b43641a 100644
--- a/src/lib/eolian_cxx/grammar/type_impl.hpp
+++ b/src/lib/eolian_cxx/grammar/type_impl.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_TYPE_IMPL_HH 16#ifndef EOLIAN_CXX_TYPE_IMPL_HH
2#define EOLIAN_CXX_TYPE_IMPL_HH 17#define EOLIAN_CXX_TYPE_IMPL_HH
3 18
@@ -268,7 +283,14 @@ struct visitor_generate
268 } 283 }
269 else 284 else
270 { 285 {
271 if(as_generator 286 if(regular.type_type == attributes::typedecl_type::struct_
287 || regular.type_type == attributes::typedecl_type::struct_opaque)
288 {
289 std::copy (c_type.begin(), c_type.end(), sink);
290 return true;
291 }
292 else
293 if(as_generator
272 ( 294 (
273 *(string << "_") 295 *(string << "_")
274 << string 296 << string
diff --git a/src/lib/eolian_cxx/grammar/type_traits.hpp b/src/lib/eolian_cxx/grammar/type_traits.hpp
index 8e5e52e..4c6fa92 100644
--- a/src/lib/eolian_cxx/grammar/type_traits.hpp
+++ b/src/lib/eolian_cxx/grammar/type_traits.hpp
@@ -1,6 +1,23 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_TYPE_TRAITS_HH 16#ifndef EOLIAN_CXX_TYPE_TRAITS_HH
2#define EOLIAN_CXX_TYPE_TRAITS_HH 17#define EOLIAN_CXX_TYPE_TRAITS_HH
3 18
19#include <type_traits>
20
4namespace efl { namespace eolian { namespace grammar { namespace type_traits { 21namespace efl { namespace eolian { namespace grammar { namespace type_traits {
5 22
6template <typename G> 23template <typename G>
diff --git a/src/lib/eolian_cxx/grammar/types_definition.hpp b/src/lib/eolian_cxx/grammar/types_definition.hpp
index e4c4073..665ba03 100644
--- a/src/lib/eolian_cxx/grammar/types_definition.hpp
+++ b/src/lib/eolian_cxx/grammar/types_definition.hpp
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EOLIAN_CXX_TYPES_DEFINITION_HH 16#ifndef EOLIAN_CXX_TYPES_DEFINITION_HH
2#define EOLIAN_CXX_TYPES_DEFINITION_HH 17#define EOLIAN_CXX_TYPES_DEFINITION_HH
3 18