Added automatic binding generator script with basic template, updated/extended parser and added generated error and file listing

This commit is contained in:
Sebastian Koch
2016-05-20 20:24:28 +02:00
parent 121e36cd63
commit cb25fb2ce7
6 changed files with 1762 additions and 43 deletions
+46
View File
@@ -0,0 +1,46 @@
% for enum in enums:
py::enum_<\
% for n in enum['namespaces']:
${n}::\
% endfor
${enum['name']}>(m, "${enum['name']}")
% for c in enum['constants']:
.value("${c}", \
% for n in enum['namespaces']:
${n}::\
% endfor
${c})
% endfor
.export_values();
% endfor
% for func in functions:
m.def("${func['name']}", []
(
% for p in func['parameters'][:-1]:
${p['type']} ${p['name']},
% endfor
${func['parameters'][-1]['type']} ${func['parameters'][-1]['name']}
)
{
return \
% for n in func['namespaces']:
${n}::\
% endfor
${func['name']}(\
% for p in func['parameters'][:-1]:
${p['name']}, \
% endfor
${func['parameters'][-1]['name']});
}, __doc_\
% for n in func['namespaces']:
${n}_\
% endfor
${func['name']},
% for p in func['parameters'][:-1]:
py::arg("${p['name']}"), \
% endfor
py::arg("${func['parameters'][-1]['name']}"));
% endfor