use*_*525 9 c++ python code-generation
任何人都可以向我指出一些关于如何用Python(或Perl或任何其他Linux友好的脚本语言)编写脚本的文档,这些脚本从XML生成C++代码或从命令行生成py文件.我希望能够编写一些xml文件,然后运行一个shell命令来读取这些文件并生成带有完全内联函数的.h文件,例如流操作符,构造函数等.
小智 11
如果你只想用标准的Python东西来做这个,你可以尝试制作使用Python 3样式字符串格式的模板文件.例如,类模板可能如下所示:
{className}::{className}()
{{
}}
{className}::~{className}()
{{
}}
{className}::{className}(const {className}& other)
{{
}}
{className}& {className}::operator=(const {className}& other)
{{
return *this;
}}
Run Code Online (Sandbox Code Playgroud)
然后你的Python代码非常简单:
d = {}
d['className'] = 'MyCPlusPlusClassName'
with open(yourTemplateFile, 'r') as ftemp:
templateString = ftemp.read()
with open(generatedFile, 'w') as f:
f.write(templateString.format(**d))
Run Code Online (Sandbox Code Playgroud)
当然,您可以使用相同的技巧在"className"旁边添加许多其他字段.如果你不需要像条件代码生成这样的东西,你就可以从这个简单的东西中获得很多好处.